#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. Я думаю, печально, что нигде нет страницы, которая дает советы по этому поводу:
- Сначала самое основное:
azure-messaging-eventhubs
библиотека. Я бы поставилazure-core
иazure-core-amqp
как связанные. Вы могли бы использоватьazure-core
для подключения для проверки работоспособности, например:EventHubClient.createFromConnectionStringSync(connectionString, Executors.newSingleThreadScheduledExecutor());
. Этот метод дает вам наибольшую гибкость, но вы будете писать немного больше кода и обрабатывать свойства конфигурации самостоятельно. - Затем вы можете увидеть
azure-spring-cloud-starter-eventhubs
, у которого есть вариант kafka под названиемspring-cloud-starter-azure-eventhubs-kafka
. Библиотека springazure-spring-cloud-stream-binder-eventhubs
может быть связана с этим. Эта библиотека ожидает определеннуюapplication.properties
конфигурацию (не такую, как # 3). Одна вещь, которая мне нравится в этом, заключается в том, что он загружается с задержкой, и ваша служба весенней загрузки запустится, даже если библиотека не может подключиться, и проблема будет отображаться при проверке работоспособности. - Затем есть эта оболочка вокруг того, что у нас есть в
#1
amp;#2
,spring-cloud-azure-eventhubs-stream-binder
. Эта библиотека имеет свою собственнуюapplication.properties
конфигурацию (не такую, как#2
). У этого есть встроенная проверка работоспособности, но я не смог заставить ее работать. С этим ваша служба не запустится, если она не сможет установить соединение для настройки компонентов. - Возможно, вы не хотите использовать одну из вышеупомянутых библиотек-оболочек. В этом случае вы могли бы просто использовать basic
spring-kafka
также. Я привел пример:https://github.com/djangofan/kafka-on-azure
Ответ №2:
Во-первых, будьте осторожны, что вы ссылаетесь на старую версию статьи об использовании Azure Event Hubs в Java, вот самая последняя.
В первой статье показано, как использовать Java SDK для концентраторов событий в «классическом» приложении Java.
Во второй статье объясняется, как использовать концентраторы событий в Java-приложении Spring Boot (Spring Boot — это платформа с открытым исходным кодом, поддерживаемая Pivotal).