是否可以构建一个无状态NodeREST API作为Kafka的生产者



我们在内部使用NodeJS进行无状态REST API。这让我们可以在需要时进行横向扩展。我们目前正在考虑将Kafka用于各种流任务,但我们希望继续从无状态服务中公开RESTAPI。

我们最初假设每个复制品都将是一个生产者,问题已经解决。然而,似乎卡夫卡的制作者不可能是无国籍的,否则我们就会开始失去序列之类的东西。根据我们的用例,这可能是我们的主要问题,也可能不是。

我已经看了Confluent REST代理,但它似乎依赖于Confluent平台,它对我们来说还有其他问题

两个问题:

  1. 有没有一种实现可以构建一个充当单个生产者的无状态多副本节点服务?

  2. 如果每个REST服务副本都有一个生产者,那么排序(就像比赛事件一样(是我们唯一的问题吗?

提前谢谢!

您可以使用生产者每个REST服务副本。您只需要考虑partitioning

  • 确保所有生产者使用相同的partitioner机制。然后,具有相同键的同一实体(您可以配置partitioner函数使用消息中的任何值来决定分区(将转到同一分区。然后,具有相同实体的所有事件都将添加到同一分区,并确保序列处理

最新更新