怎么做一个论坛网站,太平洋保险网站做的这么烂,电商网站规划设计方案,电销crm系统哪个好文章目录 一、背景二、需求三、调研四、配置内外网访问 一、背景
kafka机器只有内网IP#xff0c;没有绑定外网网卡#xff0c;但是可以在防火墙或通过其他有公网IP的设备上进行公网IP端口的映射。
二、需求
kafka集群端口映射后#xff0c;可以通过外网IP端口进行数据生… 文章目录 一、背景二、需求三、调研四、配置内外网访问 一、背景
kafka机器只有内网IP没有绑定外网网卡但是可以在防火墙或通过其他有公网IP的设备上进行公网IP端口的映射。
二、需求
kafka集群端口映射后可以通过外网IP端口进行数据生产和消费。一帮情况下只配置9092端口即使映射到公网外部也无法访问因为kafka需要修改其他配置开启外部访问端口。
三、调研
一般情况下kafka的listeners参数配置为127.0.0.1或本地IP地址只能本地访问无法通过外部网络访问。且如果在防火墙上进行外网端口映射就会出现如下报错
$ ./kafka-console-producer.sh --broker-list 公网IP:39092 --topic test1-topic
hello
[2023-06-26 15:03:19,708] ERROR Error when sending message to topic test1-topic with key: null, value: 5 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Topic test1-topic not present in metadata after 60000 ms.$ ./kafka-console-consumer.sh --bootstrap-server 公网IP:39092 --topic test1-topic --from-beginning
[2023-06-26 15:04:25,078] WARN [Consumer clientIdconsumer-console-consumer-58924-1, groupIdconsole-consumer-58924] Connection to node 2147483429 (/192.168.0.218:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)就算配置了公网映射默认情况下生产、消费数据还是会和机器的本地IP进行通信不会通过公网IP进行通信。
四、配置内外网访问
停止kafka、zk修改kafka配置文件
(单机版)
$ vim /data/kafka/config/server.properties
listenersINTERNAL://192.168.0.217:9092,EXTERNAL://192.168.0.217:29092
advertised.listenersINTERNAL://192.168.0.217:9092,EXTERNAL://公网IP:29092
inter.broker.listener.nameINTERNAL
listener.security.protocol.mapINTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT# 详解
# 定义内部、外部两个监听器其中EXTERNAL是内部和外部网络之间的映射在外网IP没有绑定到网卡的情况下如果绑定到主机网卡这里就必须填写外网IP
listenersINTERNAL://192.168.0.217:9092,EXTERNAL://192.168.0.217:29092
# 定义kafka集群向外界公开的监听地址其中EXTERNAL是外部网络直接访问的kafka集群地址
advertised.listenersINTERNAL://192.168.0.217:9092,EXTERNAL://公网IP:29092
# 定义kafka brokers之间使用INTERNAL监听器进行通信
inter.broker.listener.nameINTERNAL
# 定义INTERNAL、EXTERNAL监听器都使用明文协议进行通信
listener.security.protocol.mapINTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT(集群版)
# 注意
1. 集群配置内外网访问公网的端口需要配置不同的端口否则会冲突
2. 一台配置重启后接着配置重启下一台# 节点1
listenersINTERNAL://192.168.0.217:9092,EXTERNAL://192.168.0.217:19092
advertised.listenersINTERNAL://192.168.0.217:9092,EXTERNAL://公网IP:19092
inter.broker.listener.nameINTERNAL
listener.security.protocol.mapINTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT# 节点2
listenersINTERNAL://192.168.0.218:9092,EXTERNAL://192.168.0.218:19093
advertised.listenersINTERNAL://192.168.0.218:9092,EXTERNAL://公网IP:19093
inter.broker.listener.nameINTERNAL
listener.security.protocol.mapINTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT# 节点3
listenersINTERNAL://192.168.0.219:9092,EXTERNAL://192.168.0.219:19094
advertised.listenersINTERNAL://192.168.0.219:9092,EXTERNAL://公网IP:19094
inter.broker.listener.nameINTERNAL
listener.security.protocol.mapINTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT启动zk、kafka验证
通过公网ip端口的方式向测试topic中写入数据、消费数据
$ ./kafka-console-producer.sh --bootstrap-server 公网IP:29092 --topic test1-topic
$ ./kafka-console-consumer.sh --bootstrap-server 公网IP:29092 --topic test1-topic --from-beginning