Kafka 云服务器分别配置内外网访问

项目场景:

在 docker 部署或云服务器上部署,需要内外网分流的时候。
在Windows上连接阿里云服务器上部署的Kafka服务报错


问题描述:

Idea中创建Consumer报错:java.lang.IllegalStateException: No entry found for connection 2147483609
在这里插入图片描述


解决方案:

方案一
在客户端机器上修改hosts文件,配置上kafka所在服务器的hosts文件内的映射关系。这显然不是明智之举,不安全且麻烦。
方案二
在公司内网部署 kafka 集群只需要用到 listeners,所以一直也不用管 advertised.listeners 是做啥的,刚开始有查过,因为经验不足,始终理解的不够,后来发现在 docker 部署和云服务器上部署,内外网需要作区分时,发挥了它强大的作用。
关于这两个配置的介绍:(https://kafka.apachecn.org/documentation.html#brokerconfigs)
在这里插入图片描述在这里插入图片描述
listeners: 学名叫监听器,其实就是告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务。
advertised.listeners:和 listeners 相比多了个 advertised。Advertised 的含义表示宣称的、公布的,就是说这组监听器是 Broker 用于对外发布的。

操作步骤

所以,只需要在CDH里修改kafka的配置
1、这个是总体,不用分开配置:
在这里插入图片描述
2、修改代理需要分节点配置:
在这里插入图片描述
在这里插入图片描述
注意:1行与行之间用逗号隔开!
2 如果使用的是云服务器,一定要配置安全组,外网的那个端口19093!
3 监控/var/log/kafka/kafka-broker-master.log查看错误,逐个击破

自行粘贴修改:

listeners=PLAINTEXT://175.11.5.19:19092,EXTERNAL://175.11.5.19:19093,
advertised.listeners=PLAINTEXT://175.11.5.19:19092,EXTERNAL://47.98.118.56:19093,
listener.security.protocol.map=PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT

listeners=PLAINTEXT://175.11.5.20:19092,EXTERNAL://175.11.5.20:19093,
advertised.listeners=PLAINTEXT://175.11.5.20:19092,EXTERNAL://47.98.114.57:19093,
listener.security.protocol.map=PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT

listeners=PLAINTEXT://175.11.5.21:19092,EXTERNAL://175.11.5.21:19093,
advertised.listeners=PLAINTEXT://175.11.5.21:19092,EXTERNAL://47.98.162.58:19093,
listener.security.protocol.map=PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT

重启Kafka!

防止记录不充分,把参考的博客记录一下:
官方文档(英文):https://kafka.apache.org/documentation/#brokerconfigs
官方文档(中文):https://kafka.apachecn.org/documentation.html#brokerconfigs
理解说明1:https://segmentfault.com/a/1190000020715650
理解说明2:https://www.cnblogs.com/xuewenlong/p/14379007.html
关键必坑(官网论坛内容加载较慢):https://community.cloudera.com/t5/Support-Questions/Only-one-of-inter-broker-listener-name-and-security-inter/td-p/80297

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总要冲动一次

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值