весенний облачный поток, кафка, привязка конфига - PullRequest
0 голосов
/ 16 декабря 2018

Попытка разработки приложения Spring Cloud с использованием kafka

Конфигурация, используемая для kafka:

spring:
  application:
    name: service-sample

  cloud:
    stream:
      bindings:
        output: 
          destination: lrctms-cloud-dev
          content-type: application/json

      kafka:
        binder:
          brokers: 192.168.11.153
          defaultBrokerPort: 9092
          zkNodes: 192.168.11.153

Запустите приложение, я вижу, что эти настройки выбраны

o.a.k.clients.admin.AdminClientConfig    : AdminClientConfig values:
      bootstrap.servers = [192.168.11.153:9092]
      client.id =
      connections.max.idle.ms = 300000
      metadata.max.age.ms = 300000
      metric.reporters = []
      metrics.num.samples = 2
      metrics.recording.level = INFO
      metrics.sample.window.ms = 30000
      receive.buffer.bytes = 65536
      reconnect.backoff.max.ms = 1000
      reconnect.backoff.ms = 50
      request.timeout.ms = 120000
      retries = 5
      retry.backoff.ms = 100
      sasl.jaas.config = null
      sasl.kerberos.kinit.cmd = /usr/bin/kinit
      sasl.kerberos.min.time.before.relogin = 60000
      sasl.kerberos.service.name = null
      sasl.kerberos.ticket.renew.jitter = 0.05
      sasl.kerberos.ticket.renew.window.factor = 0.8
      sasl.mechanism = GSSAPI
      security.protocol = PLAINTEXT
      send.buffer.bytes = 131072
      ssl.cipher.suites = null
      ssl.enabled.protocols = [TLSv1.2, TLSv1.1, TLSv1]
      ssl.endpoint.identification.algorithm = null
      ssl.key.password = null
      ssl.keymanager.algorithm = SunX509
      ssl.keystore.location = null
      ssl.keystore.password = null
      ssl.keystore.type = JKS
      ssl.protocol = TLS
      ssl.provider = null
      ssl.secure.random.implementation = null
      ssl.trustmanager.algorithm = PKIX
      ssl.truststore.location = null
      ssl.truststore.password = null
      ssl.truststore.type = JKS

Проблема в следующем сообщении об ошибке:

adminclient-1] o.apache.kafka.common.network.Selector   : [AdminClient clientId=adminclient-1] Connection with 127.0.0.1 disconnected
 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.kafka.common.network.PlaintextTransportLayer.finishConnect(PlaintextTransportLayer.java:50)
         at org.apache.kafka.common.network.KafkaChannel.finishConnect(KafkaChannel.java:106)
         at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:458)
         at org.apache.kafka.common.network.Selector.poll(Selector.java:412)
         at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:460)
         at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.run(KafkaAdminClient.java:1006)
         at java.lang.Thread.run(Thread.java:748)

Как настроить этот «AdminClient» и передать ему правильную информацию о хосте / ip?Проверено Справочное руководство Kafka Binder по Spring Cloud Stream , но не удалось найти ответ.

1 Ответ

0 голосов
/ 17 декабря 2018

Перемещение комментария к ответу

Итак, согласно журналам, была установлена ​​правильная конфигурация, однако это только начальное соединение с брокером.Затем контроллер Kafka отправляет обратно вашему клиенту список advertised.host.name / advertised.listener для каждого брокера в кластере, который в большинстве случаев должен быть настроен как внешний адрес брокера, который может бытьразрешается внешними клиентами.Если вы получаете что-то еще (в вашем случае 127.0.0.1), это должно быть свойство для проверки

...