我可以配置 kafka 以便消费者使用一个网络接口而集群复制使用另一个吗?

Can I configure kafka so that consumers use one network interface and cluster replication uses another?

有没有一种方法可以配置 kafka,使复制流量发生在一个网络上,而消费者通过另一个网络连接。从文档看来,broker 和 consumer 都会使用 advertised.listeners 参数。我想分开这个流量。

是的,您可以将 Kafka 配置为对用户和复制流量使用不同的网络接口。

首先,让我们为我们的接口定义一些好听的名字。例如,使用 SASL_SSL 的外部流量的 USERS 接口和另一个仅 SSL 用于复制的接口 REPLICATION (您可以将任何您想要的协议映射到名称,SASL_SSLSSL 只是例子):

listener.security.protocol.map=USERS:SASL_SSL,REPLICATION:SSL

然后定义监听器:

listeners=USERS://:9092,REPLICATION://:9093
advertised.listeners=USERS://some-network:9092,REPLICATION://another-network:9093

最后设置代理间协议:

inter.broker.listener.name=REPLICATION

在这个例子中,您将给您的用户 some-network:9092 作为 bootstrap 地址。

花时间阅读有关这些设置的文档:http://kafka.apache.org/documentation/#brokerconfigs