【发布时间】:2016-10-02 16:26:57
【问题描述】:
我有一个想要发布的事件流。它被划分为主题,不断更新,需要水平扩展(并且没有 SPOF 很好),并且在某些情况下可能需要重播旧事件。似乎与 Kafka 的功能相匹配的所有功能。
我想通过任何人都可以连接并获取事件的公共 API 将其发布到全世界。 Kafka 是否适合作为公共 API 公开?
我已经阅读了文档页面,但还没有深入。 ACL 似乎是明智的。
我的担忧
消费者将在世界任何地方。我不认为这是查看 Kafka 架构的问题。消息的速率可能不会超过每秒 10 条。
与 zookeeper 的集成是否存在问题?
是否有任何反对让我无法控制的订阅者客户端连接的论点?
【问题讨论】:
-
就个人而言,我会使用另一个系统来前端它。事实上,我愿意。我使用 NodeJS 处理与客户端的通信,并使用
kafka-node处理 Kafka 和 Node 之间的通信。除其他事项外,我记得在某处读到“没有人使用 ACL”,这让我担心依赖它们——缺乏使用等于很有可能出现问题。您还可能遇到防火墙/安全问题。我知道这不是您正在寻找的答案 - 因此这是一条评论。 -
不,这正是我正在寻找的答案,谢谢。你在做什么其他范围的节点?网络套接字?你能恢复中断的流吗?
-
我使用
engine.io。我最初使用socket.io和 websockets,但由于不需要开销,所以降到了较低的级别。我此时没有使用自动重新连接——但您可以使用engine.io来实现。然后,只需使用client-id标记您的客户端,并在客户端使用localStorage和在NodeJS 服务器端使用Map()保持上下文。 -
这里有一个非常简单的 socket.io 服务器从 kafka 主题读取的示例:github.com/confluentinc/demo-scene/blob/master/ksql-workshop/…
标签: apache-kafka kafka-consumer-api