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

相关推荐
_oP_i几秒前
Pinpoint 是一个开源的分布式追踪系统
java·分布式·开源
lucky_syq2 小时前
Flume和Kafka的区别?
大数据·kafka·flume
观测云2 小时前
Confluent Cloud Kafka 可观测性最佳实践
kafka·confluent
攻心的子乐2 小时前
Kafka可视化工具 Offset Explorer (以前叫Kafka Tool)
分布式·kafka
小林想被监督学习3 小时前
RabbitMQ 的7种工作模式
分布式·rabbitmq
初晴~4 小时前
【Redis分布式锁】高并发场景下秒杀业务的实现思路(集群模式)
java·数据库·redis·分布式·后端·spring·
有一个好名字4 小时前
zookeeper分布式锁模拟12306买票
分布式·zookeeper·云原生
漫无目的行走的月亮6 小时前
Ubuntu下C语言操作kafka示例
kafka·librdkafka
yukai080088 小时前
【最后203篇系列】002 - 两个小坑(容器时间错误和kafka模块报错
分布式·kafka
老猿讲编程9 小时前
OMG DDS 规范漫谈:分布式数据交互的演进之路
分布式·dds