我正在为jvm寻找一个轻量级的分布式单生产者多消费者消息服务。我希望该服务能够在与生产者相同的过程中运行。它只需要支持10个读者(最多可能低100), 但它需要能够具有高吞吐量。 每条消息都需要只发送给一个消费者,哪个消息无关紧要。 应该只有一个有界缓冲区,生产者应该阻止缓冲区已满。 如果没有可用消息,消费者应该阻止。 应该有一种方法让生产者发出数据结束的信号 所有消费者收到数据信号结束后关闭服务。 完整的消息队列,如RabbitMQ,ZeroMQ&卡夫卡似乎不适合这种情况,我没有找到任何其他的东西。我更喜欢Scala库,但任何JVM语言都可以。
答案 0 :(得分:2)
Akka应该能够支持 - http://akka.io/ 您还可以查看红隼 - https://github.com/robey/kestrel
答案 1 :(得分:0)
您还可以尝试使用基于Redis的简单java PubSub系统Redisson lib
答案 2 :(得分:0)
你一定要看看Akka Streams。它们使用背压以最优雅的方式支持有界缓冲区。