转发来自Kafka主题

时间:2019-07-04 19:19:57

标签: rest apache-kafka spring-kafka message-forwarding

我正在设计一个系统,该系统的作用类似于从一个系统到另一个系统的消息转发器。我有几个选择,但是我想应用最好的选择,它减少了资源消耗(cpu,ram)和延迟。因此,我需要您的建议并对此进行查看。 我们假设消息将从Kafka中的主题流式传输到我们的系统。我们需要将所有消息从主题转发到另一个主机。为此可以有不同的策略。

  1. 收集一定数量的消息,比如说100条消息(批处理),并在一条HTTP消息中一次发送它们。
  2. 收到一条消息后,系统会将这条消息作为http POST请求发送到目标主机。
  3. 在我们的系统和目标主机之间打开webSocket并发送消息。
  4. 表现得像卡夫卡制作人,并向主题发送消息。

它们每个都有优点和缺点。我担心系统可能无法处理大量消息。除了这四个项目,您还有其他选择吗?就什么而言,您认为最好的选择是什么?

1 个答案:

答案 0 :(得分:0)

您的延迟要求有多重要? 与基于UDP的消息传递系统相比,HTTP速度很慢,但是也许您不需要如此定制的延迟。 如您所知,批量处理邮件会增加延迟。

但是令人不安的是,此页面的标题为“ rest-Forward” =)。 它必须是REST(所以是HTTP)吗?因为您似乎可以很好地设想像卡夫卡制作人那样工作,如果是这样,那不是REST。

Kafka的内存占用量可能有点高(Java库),但没有那么多。 您是否在嵌入式系统上工作(愿意减少内存占用?)

出于CPU的目的,这取决于我们正在比较的Kafka,但是我仍然认为Kafka在要求性能时已经过优化。

认为我们缺少有关此“另一台主机”的更多信息,您能提供有关其目的的更多详细信息吗?

Yannick