我们正在尝试使用java客户机从kafka集群消费。集群位于跳转主机后面,因此访问的唯一方法是通过ssh隧道。但我们无法读取,因为一旦使用者获取元数据,它就会使用原始主机连接到代理。这种行为能被推翻吗?我们可以要求Kafka客户机不要使用元数据吗?
rqmkfv5c1#
对我来说最好的办法就是 kafkatunnel (https://github.com/simple-machines/kafka-tunnel). 很有魅力。
kafkatunnel
nfg76nw02#
如果代理播发主机名,则实际上不必添加虚拟接口来通过ssh隧道访问代理。在中添加一个hosts条目就足够了 /etc/hosts 并将隧道绑定到添加的名称。假设 broker.kafkacluster 是代理的advised.hostname: /etc/hosts :127.0.2.1 broker.kafkacluster隧道: ssh -L broker.kafkacluster:9092:broker.kafkacluster:9092 <brokerhostip/name>
/etc/hosts
broker.kafkacluster
ssh -L broker.kafkacluster:9092:broker.kafkacluster:9092 <brokerhostip/name>
jvidinwx3#
试试这样的换向:
sshuttle -r user@host broker-1-ip:port broker-2-ip:port broker-3-ip:port
当然,代理列表取决于播发的侦听器代理设置。
bybem2ql4#
据我所知不是。当我需要做类似的事情时,我使用的技巧是:为每个kafka代理设置一个虚拟接口打开到每个代理的隧道,以便代理n绑定到虚拟接口n配置您的 /etc/hosts 文件,以便将broker n的播发主机名解析为虚拟接口n的ip。锿。Kafka经纪人:broker1(广告名为broker1.mykafkacluster)broker2(广告名为broker2.mykafkacluster)虚拟接口:veth1(192.168.1.1)veth2(192.168.1.2)隧道:经纪人1: ssh -L 192.168.1.1:9092:broker1.mykafkacluster:9092 jumphost 经纪人2:ssh -L 192.168.1.2:9092:broker1.mykafkacluster:9092 jumphost /etc/hosts :192.168.1.1代理1.mykafkacluster192.168.1.2经纪人2.mykafkacluster如果您这样配置您的系统,您应该能够访问kafka集群中的所有代理。注意:如果您将kafka代理配置为播发ip地址而不是主机名,则该过程仍然可以工作,但您需要使用代理播发的相同ip地址配置虚拟接口。
ssh -L 192.168.1.1:9092:broker1.mykafkacluster:9092 jumphost
4条答案
按热度按时间rqmkfv5c1#
对我来说最好的办法就是
kafkatunnel
(https://github.com/simple-machines/kafka-tunnel). 很有魅力。nfg76nw02#
如果代理播发主机名,则实际上不必添加虚拟接口来通过ssh隧道访问代理。在中添加一个hosts条目就足够了
/etc/hosts
并将隧道绑定到添加的名称。假设
broker.kafkacluster
是代理的advised.hostname:/etc/hosts
:127.0.2.1 broker.kafkacluster
隧道:
ssh -L broker.kafkacluster:9092:broker.kafkacluster:9092 <brokerhostip/name>
jvidinwx3#
试试这样的换向:
当然,代理列表取决于播发的侦听器代理设置。
bybem2ql4#
据我所知不是。
当我需要做类似的事情时,我使用的技巧是:
为每个kafka代理设置一个虚拟接口
打开到每个代理的隧道,以便代理n绑定到虚拟接口n
配置您的
/etc/hosts
文件,以便将broker n的播发主机名解析为虚拟接口n的ip。锿。
Kafka经纪人:
broker1(广告名为broker1.mykafkacluster)
broker2(广告名为broker2.mykafkacluster)
虚拟接口:
veth1(192.168.1.1)
veth2(192.168.1.2)
隧道:
经纪人1:
ssh -L 192.168.1.1:9092:broker1.mykafkacluster:9092 jumphost
经纪人2:ssh -L 192.168.1.2:9092:broker1.mykafkacluster:9092 jumphost
/etc/hosts
:192.168.1.1代理1.mykafkacluster
192.168.1.2经纪人2.mykafkacluster
如果您这样配置您的系统,您应该能够访问kafka集群中的所有代理。
注意:如果您将kafka代理配置为播发ip地址而不是主机名,则该过程仍然可以工作,但您需要使用代理播发的相同ip地址配置虚拟接口。