kafka集群消费单机多个网络接口
Consumen multiple network interfaces of single machine for kafka cluster
我有一台 Linux 机器,有 3 个网络接口,
假设 IP 是 192.168.1.101,192.168.1.102,192.168.1.103
我想使用这个单个节点的所有 3 个 IP 来创建与其他节点的 Kafka 集群,所有 3 个 IP 是否应该有各自的代理?
另外不推荐使用nic绑定,所有IP都需要利用
总的来说,我不确定你为什么要这样做...如果你为每个地址使用单独的卷 (log.dirs
),那么你可能想要单独的 Java 进程,当然,但你仍然会共享相同的内存,并且让那台机器成为单点故障。
在任何情况下,您都可以设置一个进程让 advertised.listeners
列出每个客户端要与之通信的地址,但是,您仍然需要处理 [=24] 中的端口分配=],因此您可能需要像这样设置 listeners
listeners=PLAINTEXT_1://0.0.0.0:9092,PLAINTEXT_2://0.0.0.0:9093,PLAINTEXT_3://0.0.0.0:9094
并确保您 listener.security.protocol.map
设置也使用这些名称
请注意,客户端在任何时候都只会与领导主题分区通信,因此如果您有一个代理 JVM 进程和 3 个地址,那么实际上只会使用一个地址。一项优化可能是您的集群内复制可以使用单独的 NIC。
我有一台 Linux 机器,有 3 个网络接口, 假设 IP 是 192.168.1.101,192.168.1.102,192.168.1.103 我想使用这个单个节点的所有 3 个 IP 来创建与其他节点的 Kafka 集群,所有 3 个 IP 是否应该有各自的代理? 另外不推荐使用nic绑定,所有IP都需要利用
总的来说,我不确定你为什么要这样做...如果你为每个地址使用单独的卷 (log.dirs
),那么你可能想要单独的 Java 进程,当然,但你仍然会共享相同的内存,并且让那台机器成为单点故障。
在任何情况下,您都可以设置一个进程让 advertised.listeners
列出每个客户端要与之通信的地址,但是,您仍然需要处理 [=24] 中的端口分配=],因此您可能需要像这样设置 listeners
listeners=PLAINTEXT_1://0.0.0.0:9092,PLAINTEXT_2://0.0.0.0:9093,PLAINTEXT_3://0.0.0.0:9094
并确保您 listener.security.protocol.map
设置也使用这些名称
请注意,客户端在任何时候都只会与领导主题分区通信,因此如果您有一个代理 JVM 进程和 3 个地址,那么实际上只会使用一个地址。一项优化可能是您的集群内复制可以使用单独的 NIC。