Sou*_*abh 10 ssh-tunnel apache-kafka
我们正尝试使用Java客户端从Kafka集群中进行使用.群集是Jump主机的后面,因此唯一的访问方式是通过SSH隧道.但我们无法读取,因为一旦消费者获取元数据,它就会使用原始主机连接到代理.这种行为可以被覆盖吗?我们可以要求Kafka客户端不使用元数据吗?
不是我所知道的.
我需要做类似的事情时使用的技巧是:
/etc/hosts文件,以便将代理n的通告主机名解析为虚拟接口n的ip.ES.
卡夫卡经纪人:
虚拟接口:
隧道:
ssh -L 192.168.1.1:9092:broker1.mykafkacluster:9092 jumphostssh -L 192.168.1.2:9092:broker1.mykafkacluster:9092 jumphost/etc/hosts:
如果您像这样配置系统,则应该能够访问Kafka群集中的所有代理.
注意:如果您将Kafka代理配置为通告IP地址而不是主机名,则该过程仍然可以工作,但您需要使用与代理通告的IP地址相同的虚拟接口进行配置.
如果代理广告主机名,您实际上不必添加虚拟接口来通过 SSH 隧道访问代理。在/etc/hosts客户端中添加主机条目并将隧道绑定到添加的名称就足够了。
假设broker.kafkacluster是您的经纪人的 ads.hostname:
/etc/hosts:
127.0.2.1 broker.kafkacluster
隧道:
ssh -L broker.kafkacluster:9092:broker.kafkacluster:9092 <brokerhostip/name>
像这样尝试sshuttle:
sshuttle -r user@host broker-1-ip:port broker-2-ip:port broker-3-ip:port
Run Code Online (Sandbox Code Playgroud)
当然,代理列表取决于广告监听器代理设置。
| 归档时间: |
|
| 查看次数: |
4360 次 |
| 最近记录: |