MQ选择点对点高吞吐量

时间:2016-07-03 17:23:26

标签: java activemq apache-kafka mq apollo

我有一个具有这些特殊要求的场景:

  • 生产就绪&稳定。
  • 点对点连接,生产者位于防火墙后面,云中的消费者。有可能在几个生产者\消费者之间分配流量,但所有流量仍然必须遍历单个WAN连接,这可能是瓶颈。
  • 高吞吐量 - 大约300 Mb /秒(可能高达1Gb!)。消息大小从~1KB到可能几MB不等。
  • 保证交付必须 - 每条消息最终都必须到达消费者,因此我们需要在网络短暂停机或内存不足的情况下开始将消息保存到磁盘。
  • 消息顺序并不重要,消息带有时间戳,可以在消费者处重新安排。
  • 非常优选,但不是那么重要 - 应该同时在linux和Linux上运行windows(JVM似乎是明显的选择)

我最近一直在关注这么多的MQ,而且我没有任何实际操作经验。
认为问问有经验的人会更好。
我们主要考虑Kafka,但我不确定它对我们的用例来说是最好的,似乎是针对分布式部署而定制的。多个主题\消费者\生产者。而且,绝对不能在Windows上生产。 Apache ActiveMQ或Apollo \ Artemis怎么样? RabbitMQ似乎不适合我们的性能要求。或者也许有一些Java库具有我们需要的功能而没有中间人经纪人?
任何帮助理解这种污泥的人都会非常感激。

1 个答案:

答案 0 :(得分:0)

如果有人遇到这个问题,我们最终会和Kafka一起去。它的性能令人印象深刻,到目前为止它在linux上非常稳定。没有尝试在生产部署中的Windows上运行它。

更新12/3/2017: 在Linux上运行良好且非常稳定,但在Windows上,这在生产中不可用。由于文件句柄泄漏,旧数据永远不会被删除,自2013年以来相关的Jira被忽略:https://issues.apache.org/jira/browse/KAFKA-1194