Spring Cloud Stream Kafka Binder и Spring Cloud Azure EventHub совместимая версия для Spring Boot> 1.5.20
Я успешно использовал Spring Cloud Stream Kafka Binder (org.springframework.cloud:spring-cloud-starter-stream-kafka:3.0.1.RELEASE) и Spring Cloud Azure Event Hubs (com.microsoft.azure:spring-cloud-starter-azure-eventhubs:1.2.3) с Spring Boot 2.2.6 для публикации и потребления сообщений из концентратора событий Azure (с включенным Kafka API).
Однако, когда я пытаюсь интегрировать те же версии библиотек Spring Cloud с Spring Boot 1.5.22, я сталкиваюсь с проблемой java.lang.NoClassDefFoundError: org/springframework/integration/support/converter/ConfigurableCompositeMessageConverter
Когда я использовал spring-cloud-starter-stream-kafka:1.3.4.RELEASE и com.microsoft.azure:spring-cloud-starter-azure-eventhubs:1.1.0, я получаю проблемы с подключением zookeeper, вероятно, из-за другого набор свойств, необходимых для настройки
2020-04-29 17:01:43.104 INFO 81976 --- [localhost:2181)] [org.apache.zookeeper.ClientCnxn ] [-] [-] : Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
2020-04-29 17:01:43.107 WARN 81976 --- [localhost:2181)] [org.apache.zookeeper.ClientCnxn ] [-] [-] : Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)
Мой application.yaml выглядит так, как показано ниже
spring:
cloud:
azure:
auto-create-resources: true
credential-file-path: my.azureauth
eventhub:
checkpoint-storage-account: azuremigrationv2
namespace: somenamespace
region: Central US
resource-group: some-rg
stream:
bindings:
consumer:
destination: event-hub-1
group: testconsumergroup
content-type: application/json
nativeEncoding: true
consumer:
concurrency: 1
valueSerde: JsonSerde
requeue-rejected: true
Я хотел бы знать, какие версии библиотек, которые я использую, совместимы с Spring Boot >= 1.5.20.
1 ответ
Насколько я понимаю, свойства конфигурации внутри предназначены для зависимости
azure-spring-cloud-starter-eventhubs
и свойства конфигурации внутри предназначены для использования с
azure-spring-cloud-stream-binder-eventhubs
. Я могу ошибаться в этом, но я думаю, что это правильно. По нему нет хорошей документации, которую я мог бы найти, и это сильно сбивает с толку, если вы не знаете разницы. Это заставило меня потратить день или два на POC, пока я не начал понимать это.
ПРИМЕЧАНИЕ. При настройке подшивок
spring.cloud.stream
содержит
spring.cloud.azure
подразделы. Ссылка на сайт