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подразделы. Ссылка на сайт