Kafka集群跨双网段及多网段通信问题解决(避免踩坑)
创作时间:
作者:
@小白创作中心
Kafka集群跨双网段及多网段通信问题解决(避免踩坑)
引用
CSDN
1.
https://m.blog.csdn.net/qq_42862247/article/details/142596516
在实际生产环境中,Kafka集群跨网段通信是一个常见问题。本文通过三个版本的配置示例,详细展示了如何解决Kafka集群跨双网段及多网段通信问题,帮助读者避免踩坑。
一、问题场景
实际生产环境总存在很多Kafka集群跨网段的问题。Kafka集群可能存在多个网卡,对应多个网段。不同网段之间需要同时与集群通信,即跨网段生产消费问题。
二、解决方案
第一版配置(不可行)
# broker 的唯一标识符,在 Kafka 集群中必须唯一
broker.id=0
# Kafka 服务监听的地址和端口,这里使用明文协议监听在 10.168.200.250 的 9092 端口
listeners=PLAINTEXT://10.168.200.250:9092,PLAINTEXT://10.168.201.250:9092
# Listener name, hostname and port the broker will advertise to clients.
# If not set, it uses the value for "listeners".
#remote visit
advertised.listeners=PLAINTEXT://10.168.200.250:9092,PLAINTEXT://10.168.201.250:9092
# 用于处理网络请求的线程数
num.network.threads=5
# 用于执行磁盘 I/O 操作的线程数
num.io.threads=8
# 套接字发送缓冲区大小,单位为字节
socket.send.buffer.bytes=102400
# 套接字接收缓冲区大小,单位为字节
socket.receive.buffer.bytes=102400
# 单个请求的最大字节数
socket.request.max.bytes=104857600
# Kafka 日志文件的存储目录
log.dirs=/home/logs/kafka
# 每个主题的默认分区数量
num.partitions=1
# 每个数据目录用于恢复的线程数
num.recovery.threads.per.data.dir=1
# 偏移量主题的副本因子,决定了数据的冗余度
offsets.topic.replication.factor=1
# 事务状态日志的副本因子
transaction.state.log.replication.factor=1
# 事务状态日志的最小同步副本数量
transaction.state.log.min.isr=1
# 日志保留的小时数,超过这个时间的日志将被清理
log.retention.hours=24
# 日志清理策略,这里设置为删除旧日志
log.cleanup.policy=delete
# 日志段的大小,单位为字节,当一个日志段达到这个大小后会创建新的日志段
log.segment.bytes=1073741824
# 检查日志保留策略的时间间隔,单位为毫秒
log.retention.check.interval.ms=300000
# 连接 Zookeeper 的地址,这里是连接本地的 2181 端口
zookeeper.connect=localhost:2181
# 连接 Zookeeper 的超时时间,单位为毫秒
zookeeper.connection.timeout.ms=18000
# 消费者组初始平衡的延迟时间,单位为毫秒,设置为 0 表示不延迟
group.initial.rebalance.delay.ms=0
第二版配置(失败)
# broker 的唯一标识符,在 Kafka 集群中必须唯一
broker.id=0
# Kafka 服务监听的地址和端口,这里使用明文协议监听在 10.168.200.250 的 9092 端口
listeners=PLAINTEXT://0.0.0.0:9092
# 配置 Kafka 广播给客户端的地址和端口
advertised.listeners=PLAINTEXT://10.168.200.250:9092,PLAINTEXT://10.168.201.250:9092
# 用于处理网络请求的线程数
num.network.threads=5
# 用于执行磁盘 I/O 操作的线程数
num.io.threads=8
# 套接字发送缓冲区大小,单位为字节
socket.send.buffer.bytes=102400
# 套接字接收缓冲区大小,单位为字节
socket.receive.buffer.bytes=102400
# 单个请求的最大字节数
socket.request.max.bytes=104857600
# Kafka 日志文件的存储目录
log.dirs=/home/logs/kafka
# 每个主题的默认分区数量
num.partitions=1
# 每个数据目录用于恢复的线程数
num.recovery.threads.per.data.dir=1
# 偏移量主题的副本因子,决定了数据的冗余度
offsets.topic.replication.factor=1
# 事务状态日志的副本因子
transaction.state.log.replication.factor=1
# 事务状态日志的最小同步副本数量
transaction.state.log.min.isr=1
# 日志保留的小时数,超过这个时间的日志将被清理
log.retention.hours=24
# 日志清理策略,这里设置为删除旧日志
log.cleanup.policy=delete
# 日志段的大小,单位为字节,当一个日志段达到这个大小后会创建新的日志段
log.segment.bytes=1073741824
# 检查日志保留策略的时间间隔,单位为毫秒
log.retention.check.interval.ms=300000
# 连接 Zookeeper 的地址,这里是连接本地的 2181 端口
zookeeper.connect=localhost:2181
# 连接 Zookeeper 的超时时间,单位为毫秒
zookeeper.connection.timeout.ms=18000
# 消费者组初始平衡的延迟时间,单位为毫秒,设置为 0 表示不延迟
group.initial.rebalance.delay.ms=0
解释:
listeners=PLAINTEXT://0.0.0.0:9092:配置 Kafka 监听所有网络接口上的 9092 端口。advertised.listeners=PLAINTEXT://10.60.200.250:9092,PLAINTEXT://10.60.201.250:9092:配置 Kafka 广播给客户端的地址和端口。客户端连接时会使用这些地址。
第三版配置(亲测OK)
# broker 的唯一标识符,在 Kafka 集群中必须唯一
broker.id=0
# 配置 Kafka 监听的地址和端口
listeners=INTERNAL://10.168.200.250:9093,EXTERNAL://10.168.201.250:9092
# 配置 Kafka 广播给客户端的地址和端口
advertised.listeners=INTERNAL://10.168.200.250:9093,EXTERNAL://10.168.201.250:9092
# 指定 Kafka broker 之间的通信监听器
inter.broker.listener.name=INTERNAL
# Maps listener names to security protocols, the default is for them to be the same. See the config documentation for more details
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
# 用于处理网络请求的线程数
num.network.threads=5
# 用于执行磁盘 I/O 操作的线程数
num.io.threads=8
# 套接字发送缓冲区大小,单位为字节
socket.send.buffer.bytes=102400
# 套接字接收缓冲区大小,单位为字节
socket.receive.buffer.bytes=102400
# 单个请求的最大字节数
socket.request.max.bytes=104857600
# Kafka 日志文件的存储目录
log.dirs=/home/logs/kafka
# 每个主题的默认分区数量
num.partitions=1
# 每个数据目录用于恢复的线程数
num.recovery.threads.per.data.dir=1
# 偏移量主题的副本因子,决定了数据的冗余度
offsets.topic.replication.factor=1
# 事务状态日志的副本因子
transaction.state.log.replication.factor=1
# 事务状态日志的最小同步副本数量
transaction.state.log.min.isr=1
# 日志保留的小时数,超过这个时间的日志将被清理
log.retention.hours=24
# 日志清理策略,这里设置为删除旧日志
log.cleanup.policy=delete
# 日志段的大小,单位为字节,当一个日志段达到这个大小后会创建新的日志段
log.segment.bytes=1073741824
# 检查日志保留策略的时间间隔,单位为毫秒
log.retention.check.interval.ms=300000
# 连接 Zookeeper 的地址,这里是连接本地的 2181 端口
zookeeper.connect=localhost:2181
# 连接 Zookeeper 的超时时间,单位为毫秒
zookeeper.connection.timeout.ms=18000
# 消费者组初始平衡的延迟时间,单位为毫秒,设置为 0 表示不延迟
group.initial.rebalance.delay.ms=0
这个配置通过使用不同的监听器名称(INTERNAL和EXTERNAL)来区分内部和外部通信,成功解决了跨网段通信问题。
热门推荐
155到175都能穿:赵丽颖的大衣糯米裤搭配术
秋冬养生必备:如何挑选优质银杏叶?
精心呵护,让按摩椅长久陪伴——按摩椅维护与保养秘籍
银行卡销户后,余额去哪儿了?
招商银行信用卡注销,小心影响信用记录!
潮流酷炫一冬天!抢先收藏这份吉林4日游!
周期类股票什么意思:周期性股票的特点与投资策略
赵丽颖王一博新剧收视战:电视端网络端各领风骚
同款饰品、同步微博:赵丽颖王一博恋情传闻再起
赵丽颖两部新片市场表现分化,陈可辛新作将至引关注
胃病常用药雷尼替丁:常见副作用与长期风险全解析
吉林省自驾游2日游和3日游6条路线推荐
斯里兰卡度假攻略:避开雨季的最佳时机
斯里兰卡与印度:两千年的文化碰撞与交融
从点赞到数据大战:社交媒体时代的粉丝文化新变
王力宏复出晒与肖战合影,跨时代友谊引发热议
从紧张到温柔:王一博赵丽颖金鸡奖互动引发全网热议
红焖猪脚的神仙配料组合🔥
美国银行卡账户被锁怎么办?这份实用解锁攻略请收好
银行账户保护性止付,解锁攻略来了!
泮托拉唑钠与四种药物联用指南:治疗胃溃疡的用药建议
抑制胃酸分泌,泮托拉唑钠肠溶片四大适应症全解析
赵丽颖《与凤行》演技争议:武打戏获赞,情感戏引发观众不满
赵丽颖转型实力派后,再演花千骨会是什么样
从《花千骨》到金鹰提名,赵丽颖的演艺事业突破之路
冬天爬武功山全攻略:从装备准备到行程安排,这些要点一定要知道
下午一杯咖啡,当心血压飙升!
低盐饮食+适量运动,轻松搞定下午高血压
下午血压飙升?教你稳住情绪和饮食
揭秘下午血压飙升:生理节律还是另有隐情?