【问题标题】:Alternative for Kafka over HTTP ProtocolKafka over HTTP 协议的替代方案
【发布时间】:2018-03-09 00:28:53
【问题描述】:

您可能知道 Kafka 在应用层使用二进制协议通过网络传输消息,这种未知协议在高度安全的网络中存在问题。是否有任何消息代理工具可以替代 Kafka over HTTP 协议?

我们的任务是通过 MAN 网络将数据从多个来源发送到单个目的地。

首选开源和基于 Java 的解决方案。

提前谢谢你。

【问题讨论】:

  • 你可以有一个简单的 HTTP 端点接受消息并将它们发送到 kafka。
  • Kafka 没有使用任何未知协议,它使用的是 TCP
  • 您的来源是另一个 Kafka 集群,还是您只是想通过网络从远程客户端发布?我问是因为它们对于每个用例都有不同的选择。数据流是单向的还是双向的?
  • @khachik 我希望生产者和代理之间的通信通过 http(s)。
  • 那么您绝对应该使用 Confluent REST 代理,因为它完全通过 WAN 上的 HTTP 或 HTTPS 运行。客户端只是普通的 HTTP 客户端,它们使用 HTTP POST 发布。

标签: java http apache-kafka network-protocols messagebroker


【解决方案1】:

Kafka-rest是kafka的http rest代理,支持https。

Kafka 使用的是 tcp,所以它并不是一个真正的未知协议。您可以在 kafka 上设置 ssl 或 sasl(https://docs.confluent.io/current/kafka/security.htmlhttps://kafka.apache.org/documentation/#security

【讨论】:

  • 非常感谢您的回答,企业应用程序是免费的吗?!
  • 免费和开源是的 ;) 有关 Confluent 产品的更多信息,请参见此处:confluent.io/product/compare 在我这边,到目前为止我只使用了开源组件
  • 再次感谢亲爱的@treziac 的回答,我可以使用其他工具,如 ActiveMQ、RabbitMQ 或 HornetQ,通过 http 协议传输消息吗?
  • 如果你愿意,这取决于你的需求和用例,stackoverflow 不是这个问题的最佳场所。 google 上的 Kafka vs RabbitMQ vs ActiveMQ 会给你很多参考
  • 细粒度的安全性可能是 kafka-rest 或 Strimzi 桥接器的问题。其他方法可以使用 Spring Boot(或替代)+ Spring Security(或替代)+ 自定义 REST 端点,例如 PUSH /my-event、GET /my-event/watch、PUSH /my-event/commit
【解决方案2】:

对于将 Apache Kafka 桥接到 HTTP 协议的 100% 开源选项感兴趣的人,您还可以查看 Strimzi Kafka Bridge。也是基于 Java 的,也可以在 Kubernetes 上运行。

【讨论】:

    猜你喜欢
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 2012-03-09
    • 2021-09-27
    • 2011-02-24
    • 2021-04-08
    相关资源
    最近更新 更多