记录一次kafka内网向外网提供服务问题解决

复制代码
	由于近期公司需要通过kafka接收一批数据,需要另外一个公司通过spark往公司内网写数据,部署了三台kafka集群,对外提供的接口是通过nginx通过代理域名和端口提供给数据提供者.
	由于代理域名和端口无法与kafka地址进行关联,需要进行如下配置:
	1.首先是使用ambari搭建kafka进行配置,发现对方调用一直无法解析集群的域名,而且修改kafka内外网配置导致kafka无法启动;
	2.其次是通过ambari部署的kafka修改服务器上面的配置,然后启动,脱离ambari管控,发现连接超时,无法连接;
	3.搭建kafka原生集群,刚开始使用3版本以上的,由于对方版本使用的比较低,考虑到版本高兼容性的问题,就使用kafka2.5版本,并修改相关配置,具体配置如下:

############################# Server Basics #############################
broker.id=402
############################# Socket Server Settings #############################
#kafka默认监听的端口为9092
listeners=INTERNAL://0.0.0.0:6666,EXTERNAL://0.0.0.0:6667
advertised.listeners=INTERNAL://kafkaip.40:6666,EXTERNAL://外网代理域名:39665
inter.broker.listener.name=INTERNAL
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL​
# 处理网络请求的线程数量,默认为3个
num.network.threads=3
# 执行磁盘IO操作的线程数量,默认为8个
num.io.threads=8
# socket服务发送数据的缓冲区大小,默认100KB
socket.send.buffer.bytes=102400
# socket服务接受数据的缓冲区大小,默认100KB
socket.receive.buffer.bytes=102400
# socket服务所能接受的一个请求的最大大小,默认为100M
socket.request.max.bytes=104857600
############################# Log Basics #############################
# 日志存储地址
log.dirs=/data1/software/kafka_2.12-2.5.0/logs
# 每个topic默认的partition数量
num.partitions=3
# 在启动时恢复数据和关闭时刷新数据时每个数据目录的线程数量
num.recovery.threads.per.data.dir=1
############################# Internal Topic Settings  #############################
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
default.replication.factor=3
############################# Log Flush Policy #############################
# 消息刷新到磁盘中的消息条数阈值
log.flush.interval.messages=10000
# 消息刷新到磁盘中的最大时间间隔
log.flush.interval.ms=1000
############################# Log Retention Policy #############################
# 日志分片策略,单个日志文件的大小最大为1G,超出后则创建一个新的日志文件
log.segment.bytes=1073741824
# 日志保留大小,超出大小会自动删除,默认为1G,log.retention.bytes这是指定 Broker 为消息保存的总磁盘容量大小
#log.retention.bytes=1073741824
# 每隔多长时间检测数据是否达到删除条件
log.retention.check.interval.ms=300000
# 日志保留小时数,超时会自动删除,默认为7天
log.retention.hours=168

############################# Zookeeper #############################
# Zookeeper连接地址
zookeeper.connect=zkip:2181/kafka
# Zookeeper连接超时时间
zookeeper.connection.timeout.ms=18000
# Zookeeper是否允许删除topic
delete.topic.enable=true
############################# Group Coordinator Settings #############################
group.initial.rebalance.delay.ms=0

发现还是无法连接,当时考虑到与之前搭建复用的部分只有zk了,然后就重新搭建了一个单节点的zk,将kafka配置改为新搭建的单节点zk后,网络居然通啦,问题解决.

相关推荐
wno7049 小时前
Spring Boot整合Kafka
spring boot·kafka
是Dream呀17 小时前
Harness 工程:让 Agent 真正把任务做完
人工智能·分布式·缓存·agent
yt004yt17 小时前
绿岛数字化平台搭建:VOCs 监测与能碳数据一体化方案
大数据·分布式
天天喝旺仔19 小时前
分布式服务容错实战:用 Sentinel 实现限流、熔断与降级
分布式·微服务·云原生·sentinel
音符犹如代码20 小时前
Kafka 接入 AI 的三条路线:MCP 提案、会话记忆与实时上下文
java·大数据·ai·kafka
happy_king_zi21 小时前
kafka两种部署模式的区别
kafka·消息队列·sre
happy_king_zi21 小时前
Kafka 3.9.2 KRaft 模式三节点集群完整部署指南
kafka·消息队列
明快de玄米6121 小时前
Kafka 可靠消息投递:核心机制总结
kafka
lisanmengmeng21 小时前
分布式追踪与监控:Skywalking(三)
分布式·skywalking
明快de玄米611 天前
Kafka:基于 Outbox 的可靠消息投递完整方案
kafka