Kafka 云服务器分别配置内外网访问
Posted 总要冲动一次
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于Kafka 云服务器分别配置内外网访问的主要内容,如果未能解决你的问题,请参考以下文章