小白网-奉贤部落-奉贤免费信息发布平台

查看: 16|回复: 0
打印 上一主题 下一主题

kafka内网和外网端口(kafka配置外网访问)

[复制链接]

2万

主题

2万

帖子

7万

积分

论坛元老

Rank: 8Rank: 8

积分
78182
跳转到指定楼层
楼主
发表于 2025-7-26 13:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
假设您在同一个vpc(私有网络)中有一个kafka集群,也就是说,在一个intranet环境中。kafka集群有三个代理,代理1、代理2和代理3。
Kafka集群信息如下:
[*]代理1 IP: 192.168.xxx.1[*]代理2 IP: 192.168.xxx.2[*]经纪人3 IP: 192.168.xxx.3kafka集群中每个节点的Server.properties配置
属性:broker . id = 1listeners = PLAINTEXT://192.168 . XXX . 1:19092config/server-2 .属性:broker . id = 2listeners = PLAINTEXT://192.168 . XXX . 2:19092config/server-3 .属性:broker . id = 3listeners = PLAINTEXT
[*]现在希望通过配置vpc公共ip进行端口转发(或者nginx进行端口转发),可以通过外网访问(但实际使用kafka客户端连接会报错超时)如果你想通过vpc外的机器访问kafka集群,你还想访问192.168.xxx.1: 19092,192.168.xxx.2: 19092,192.168.xxx.3: 19092。
在vpc上做端口转发,vpc的公有ip是192.168.xxx.xx,在相应的防火墙上打开相应的端口(19092,19093,19093),比如:
192.168 . XXX . xx:19092- gt;192.168 . XXX . 1:19092192.168 . XXX . xx:19093- gt;192.168 . XXX . 2:19092192.168 . XXX . xx:19094- gt;192.168.xxx.2:19092
测试
此时,如果你通过vpc的公共ip和对应的端口连接私网(内网)中的kafka集群,端口192.168.xxx.xx:19092,192.168.xxx.xx:19093,192.168.xxx.xx:19094全部连接。
kafka制作者(客户端)和服务器之间也有类似的协商阶段。服务器会直接将lkafka配置文件中监听器的地址返回给生产者,生产者会将数据发送到这个监听器地址。
因为kafka客户端主动发现集群地址,所以当你通过192.168.xxx.xx:19092,192.168.xxx.xx:19093,192.168.xxx.xx:19094连接到kafka集群时,kafka集群返回给你的ip列表是由你的监听器配置的,也就是说
192.168 . XXX . 1:19092192.168 . XXX . 2:19092192.168 . XXX . 3:19092
客户端生产者在vpc的专网之外,生产者的ip转发和端口都没用。生产者和vpc的公网ip是连接的,但是在vpc中并没有和专网连接,这是访问kafka发送或消费消息时会报告网络超时的本质原因。
一种解决方案是通过域名进行客户端映射。
1.kafka配置:修改kafka集群服务器各节点的server.properties配置,注意监听器后的ip和端口配置。
属性:broker . id = 1listeners = PLAINTEXT://Kafka-1:19092config/server-2 .属性:broker . id = 2listeners = PLAINTEXT://Kafka-2:19093config/server-3 .属性:broker . id = 3listeners = PLAINTEXT://Kafka-3:19094
kafka集群的每个节点在服务器端配置主机。
卡特彼勒/etc/主机
192.168.xxx.1卡夫卡-1
192.168.xxx.2卡夫卡-2
192.168.xxx.3卡夫卡-3
2.vpc做端口映射kafka-1到192.168 . XXX . 1:19092Kafka-2到192.168 . XXX . 2:19093Kafka-3到192.168.xxx.3: 19099。
3.客户端配置:客户端将kafka01、kafka02和kafka03映射到主机文件中的公共地址。这很关键。如上所述,客户端将获得kafka配置的元数据,客户端将获得三个主机名kafka-1、kafka-2和kafka-3。之后,生产或消费数据将通过该地址直接访问。如果这三个主机名没有重新映射到公共IP,数据将无法成功生成或使用。
#/etc/hosts192.168 . XXX . xx Kafka 01 Kafka 02 Kafka 03
客户端访问kafka集群时,获得kafka-1:19092,kafka-2:19093,kafka-3:19094,这些都是通过客户端配置的主机映射转换成对应外网的ip,所以可以访问。
注意:端口应该是一致的,并且主机映射仅转换为ip。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白网-奉贤部落-奉贤免费信息发布平台  

GMT+8, 2025-8-21 21:34 , Processed in 0.054890 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表