记录一次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后,网络居然通啦,问题解决.

相关推荐
gQ85v10Db11 小时前
Redis分布式锁进阶第十七篇:微服务分布式锁全局治理 + 跨团队统一规范落地 + 全链路稳定性提升方案
redis·分布式·微服务
gQ85v10Db18 小时前
Redis分布式锁进阶第十八篇:本地缓存+分布式锁双锁架构 + 高并发削峰兜底 + 极致性能无损优化实战
redis·分布式·缓存
小江的记录本19 小时前
【Kafka核心】Kafka高性能的四大核心支柱:零拷贝、批量发送、页缓存、压缩
java·数据库·分布式·后端·缓存·kafka·rabbitmq
gQ85v10Db19 小时前
Redis分布式锁进阶第十四篇:全系列终局架构复盘 + 锁体系统一规范 + 线上全年零事故收官方案
redis·分布式·架构
KmSH8umpK19 小时前
Redis分布式锁进阶第十二篇
数据库·redis·分布式
gQ85v10Db19 小时前
Redis分布式锁进阶第十六篇:番外高阶避坑篇 + 隐性埋点锁故障深挖 + 疑难杂症终极兜底方案
数据库·redis·分布式
KmSH8umpK20 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第九篇
数据库·redis·分布式
gQ85v10Db20 小时前
Redis分布式锁进阶第十五篇:全系列终极收官复盘 + 全站锁规范归档 + 生产零故障长期运维兜底总方案
运维·redis·分布式
_F_y21 小时前
仿RabbitMQ实现消息队列-服务端核心模块实现(5)
分布式·rabbitmq
Lyyaoo.21 小时前
Redis实现分布式锁
数据库·redis·分布式