单Linux机器多网卡IP如何用于Kafka集群,是否需每个IP对应独立broker
结论
不需要为每个IP单独部署独立的Kafka broker,单个Kafka broker原生支持绑定多个网卡IP同时对外提供服务,完全可以满足你利用全部3个IP接入集群的需求,且比同节点部署多broker的方案可用性更高、资源浪费更少。
配置步骤
你只需要修改Kafka安装目录下config/server.properties配置文件的对应参数即可:
- 配置
listeners参数,让broker监听所有3个网卡的IP,示例如下:
listeners=NET1://192.168.1.101:9092,NET2://192.168.1.102:9092,NET3://192.168.1.103:9092
- 配置
advertised.listeners参数,将3个IP对外宣告给集群其他节点和客户端:
advertised.listeners=NET1://192.168.1.101:9092,NET2://192.168.1.102:9092,NET3://192.168.1.103:9092
- 配置
listener.security.protocol.map,为你自定义的监听器名称绑定安全协议,如果你使用明文传输,配置如下:
listener.security.protocol.map=NET1:PLAINTEXT,NET2:PLAINTEXT,NET3:PLAINTEXT
- (可选)如果你需要指定集群内部broker之间的通信走指定IP,只需额外配置
inter.broker.listener.name为对应监听器名称即可,例如inter.broker.listener.name=NET1。
注意事项
如果你选择同节点部署3个独立broker的方案也能实现需求,但存在明显缺陷:多个broker会竞争节点的CPU、内存、磁盘IO资源,单节点故障时会同时下线3个broker,大幅提升集群可用性风险,非特殊场景不推荐该方案。
内容的提问来源于stack exchange,提问作者Rohit Dwivedi
相关产品推荐
相关产品推荐

