В чем разница между azure-eventhubs и spring-cloud-azure-eventhubs-stream-binder?

#azure #spring-boot #spring-kafka #amqp #azure-eventhub

#azure #spring-boot #spring-кафка #amqp #azure-eventhub

Вопрос:

Мое требование — простой паблик с использованием Azure Events Hub с использованием Spring.

После проверки документации я нашел 2 статьи, которые демонстрируют интеграцию. Один использует библиотеку azure-eventhubs, а другой использует spring-cloud-azure-eventhubs-stream-binder.

В чем разница между ними?

Ответ №1:

Ну, я смотрю на это так. Я бы сказал, что есть 3-4 способа сделать это. Вы можете подключиться к Eventhubs либо как Kafka / 9093, либо как AMQP / 5671. Я думаю, печально, что нигде нет страницы, которая дает советы по этому поводу:

  1. Сначала самое основное: azure-messaging-eventhubs библиотека. Я бы поставил azure-core и azure-core-amqp как связанные. Вы могли бы использовать azure-core для подключения для проверки работоспособности, например: EventHubClient.createFromConnectionStringSync(connectionString, Executors.newSingleThreadScheduledExecutor()); . Этот метод дает вам наибольшую гибкость, но вы будете писать немного больше кода и обрабатывать свойства конфигурации самостоятельно.
  2. Затем вы можете увидеть azure-spring-cloud-starter-eventhubs , у которого есть вариант kafka под названием spring-cloud-starter-azure-eventhubs-kafka . Библиотека spring azure-spring-cloud-stream-binder-eventhubs может быть связана с этим. Эта библиотека ожидает определенную application.properties конфигурацию (не такую, как # 3). Одна вещь, которая мне нравится в этом, заключается в том, что он загружается с задержкой, и ваша служба весенней загрузки запустится, даже если библиотека не может подключиться, и проблема будет отображаться при проверке работоспособности.
  3. Затем есть эта оболочка вокруг того, что у нас есть в #1 amp; #2 , spring-cloud-azure-eventhubs-stream-binder . Эта библиотека имеет свою собственную application.properties конфигурацию (не такую, как #2 ). У этого есть встроенная проверка работоспособности, но я не смог заставить ее работать. С этим ваша служба не запустится, если она не сможет установить соединение для настройки компонентов.
  4. Возможно, вы не хотите использовать одну из вышеупомянутых библиотек-оболочек. В этом случае вы могли бы просто использовать basic spring-kafka также. Я привел пример:https://github.com/djangofan/kafka-on-azure

Ответ №2:

Во-первых, будьте осторожны, что вы ссылаетесь на старую версию статьи об использовании Azure Event Hubs в Java, вот самая последняя.

В первой статье показано, как использовать Java SDK для концентраторов событий в «классическом» приложении Java.

Во второй статье объясняется, как использовать концентраторы событий в Java-приложении Spring Boot (Spring Boot — это платформа с открытым исходным кодом, поддерживаемая Pivotal).