我使用 3 个 Zookeeper 和每个代理配置了一个包含 3 个代理的 Kafka 集群。下图展示了我的集群的图形表示。
使用主机在同一网络中的生产者和消费者测试通过和命令192.168.0.10
完美运行。kafka-console-producer
kafka-console-consumer
基于这种情况,当我尝试kafka-console-producer.sh --broker-list DYNAMIC_DNS_ADDR:30192,DYNAMIC_DNS_ADDR:30292,DYNAMIC_DNS_ADDR:30392 --topic twitter_tweets
通过 Internet 生成一些数据时,我收到以下错误:
[2018-12-10 09:59:20,772] 错误 向 twitter_tweets 主题发送消息时出错,键:null,值:16 字节,错误:(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache .kafka.common.errors.TimeoutException: twitter_tweets-1 的 1 条记录到期:自批量创建以来已过去 1505 毫秒加上逗留时间 [2018-12-10 09:59:22,273] WARN [Producer clientId=console-producer ] 无法建立与节点 1 的连接。经纪人可能不可用。(org.apache.kafka.clients.NetworkClient)
代理侦听器配置有以下属性:
listeners=PLAINTEXT://0.0.0.0:9092,SSL://0.0.0.0:9443
advertised.listeners=PLAINTEXT://192.168.0.241:9092,SSL://192.168.0.241:9443
显然,该advertised.listeners
属性的每个代理中的 IP 地址都发生了变化。我正在使用CentOS 6.10
andKafka 2.0.1
进行该设置。远程登录测试有效。另一个指向 Kafka REST 代理端口的转发是通过 Internet 工作并列出所有主题。