如何设置apachekafka消费者通过internet获取数据?

dauxcl2d  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(267)

我已经在两个不同的服务器上配置了2个Kafka的基本设置,一个在英国,另一个在印度,我的场景非常简单,英国是出版商,印度是消费者,但他们都无法获得任何数据。
我已经检查了我的防火墙没有端口阻塞。我也用redis pubsub测试了我的场景,它成功了,但是我用kafka没有成功。
我应该如何设置我的Kafka这样做?或者对Kafka有这样的可能吗?

hwazgwia

hwazgwia1#

找到解决方案:
在apache kafka的配置中,添加以下行:

  1. advertised.listeners=PLAINTEXT://xxx.xxx.xxx.xxx:pppp
  2. # x = your IP
  3. # p = your port
0s7z1bwu

0s7z1bwu2#

当您希望从多个数据中心进行交互时,不建议使用kafka。kafka旨在为您提供高吞吐量,因为您在同一数据中心进行生产和消费,而该数据中心的网络延迟最小。
为什么?
一旦消费者在不同的数据中心,延迟就会影响kafka与消费者(组重新平衡/偏移提交/心跳)和生产者在不同的数据中心进行的所有协调。每次发送消息时获取确认的延迟将相当大,降低生成消息的速度。
因此,从理论上讲,如果你的网络是可靠的,你可以很好地进行设置。
现在,如果你想让Kafka经纪人分布在数据中心,这将是更昂贵的。所有代理间的通信都将被有效地延迟,从而造成副本延迟、大量网络调用(通过internet)、代理心跳超时等,这在理论上也是可行的。
在实践中,对于这些场景,最好为每个dc使用本地kafka集群,在这些集群中,它们使用本地托管的应用程序生成/使用消息,并使用mirrormaker在数据中心之间聚合消息。

相关问题