从边缘节点推送kafka消息的最佳方法是什么?

Sty*_*les 5

我在主要地区(美国东部)有一名工人,负责计算我们边缘地区的交通数据.我想将数据从边缘区域推送到我们的主要kafka区域.

一个例子是波兰,澳大利亚,美国西部.我想将所有这些统计数据推送到美国东部.我不希望在从边缘区域到主要区域的写入期间增加额外的延迟.

另一种选择是创建另一个充当中继的kafka集群和工作者.这将要求我们在每个区域维护单个集群,并为我们的部署增加更多的复杂性.

我见过Mirror Maker,但我真的不想镜像任何东西,我想我正在寻找更多的继电器系统.如果这不是设计的方法,我如何将所有应用程序指标聚合到主要区域进行计算和排序?

感谢您的时间.

qui*_*hts 1

据我所知,您的选择如下:

  1. 在每个区域设置本地 Kafka 集群,并让边缘节点写入本地 Kafka 集群以实现低延迟写入。从那里,您将设置一个镜像生成器,将数据从本地 Kafka 提取到远程 Kafka 进行聚合。
  2. 如果您担心高潜在阻塞请求会中断应用程序请求路径,那么您可能需要将生产者配置为异步(非阻塞)写入远程 Kafka 集群。根据您选择的编程语言,这可能是简单或复杂的练习。
  3. 运行每主机中继(或数据缓冲区)服务,该服务可以像推送到远程 Kafka 集群的日志文件和守护程序一样简单(如上所述)。或者,运行单个实例 Kafka / Zookeeper 容器(有将两者捆绑在一起的 docker 镜像)来缓冲下游拉取的数据。

选项 1. 绝对是解决这个问题的最标准的解决方案,尽管有点严厉。我怀疑未来 Confluence/Kafka 人员将会推出更多工具来支持选项 3。