卡夫卡内部和外部沟通

时间:2018-12-27 12:30:12

标签: apache-kafka

流量: 本地------>代理---> Kafka

advertised.listeners=PLAINTEXT://proxyhostname:8080 - for external communication
listeners=PLAINTEXT://:9092 = for internal communication   

•同时设置这两个属性时,内部通信不会发生。(复制问题和消费者无法通过本地连接,我们必须提供代理Ip进行消费者通信)

•我们如何有效地使用该属性进行内部和外部通信?

•是否有进行外部和内部沟通的替代想法?

1 个答案:

答案 0 :(得分:1)

定义多个侦听器是很常见的事,而Kafka对此很好地支持。

要定义多个侦听器,您需要在advertised.listeners / listeners中列出所有侦听器。

如果多个侦听器将使用相同的安全协议(PLAINTEXT),则还需要设置listener.security.protocol.map才能将自定义名称映射到安全协议。请参阅Kafka文档中的broker configs

例如:

listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
advertised.listeners=INTERNAL://:9092,EXTERNAL://proxyhostname:8080
listeners=INTERNAL://:9092,EXTERNAL://:8080

这会将2个名称EXTERNALINTERNAL(您可以使用您喜欢的任何名称,我只是重用您的问题中的名称)映射到PLAINTEXT安全协议。然后为每个对象定义要侦听的端口和在元数据响应中播发的主机名。

相关问题