简单的拉消息队列

Dan*_*iel 4 queue kestrel apache-kafka

我正在努力为这项工作找到合适的工具.我已经探索了一些不同的消息队列,如Kafka,Kestrel等......我正在寻找具有PULL功能的东西.

我有一个API(分布式)将传入的消息推送到队列中.然后我会有工作人员(单独的机器)从队列中提取消息.这可以确保工作人员不会被洪水淹没,也无法处理队列的负载.

我想知道Kafka或Kestrel是否支持这种功能

use*_*864 8

Kafka确实在推拉式基础上工作,能够处理大规模的实时流.同样如他们的文档中所述,Kafka的性能在数据大小方面实际上是恒定的,因此保留大量数据不会成为问题.

用于处理流Checkout Storm.它是免费的,容错的,分布式的实时计算系统,非常容易扩展.它完成了你所提到的(在不同的机器上运行工作人员).它还支持事务拓扑.最重要的是它与Apache Kafka有很好的集成.

有关暴风雨的更多信息请点击此

因此,您通常可以使用其消费API从Kafka队列中检索消息,然后将其提供给风暴群集,以分布式方式完成其余工作.Kafka 0.8提供2种API,

  • High Level or consumer group
  • Low level or Simple consumer API

前者为消费数据提供了高级抽象,并负责处理诸如线程,错误处理等许多事情,而后者则允许更多地控制消息处理,如多次读取消息,消息事务等.

高级消费者API示例

简单消费者示例