消息队列开源软件 如何设计一个MQ消息队列?
如何设计一个MQ消息队列?
1. 在上图中定义发送和使用消息的过程
2。首先定义消息协议,如ActiveMQ、stomp、XMPP等
3。定义消息协议,定义消息队列需要满足的场景
是否要保证消息的可靠性,必要时要保证存储的高可用性
是否要支持同步和异步消息
是否要保证消息队列例如rocketmq是高可靠性,卡夫卡是高吞吐量,但不高可靠性。
常见的消息队列有哪些,它们之间有什么区别?
Rabbitmq:
Rabbitmq是一个基于Erlang语言的开源消息队列。Rabbitmq在数据一致性、稳定性和可靠性方面都非常优秀。它直接或间接地支持多种协议,并能很好地支持多种语言。然而,它的性能和吞吐量并不令人满意。由于Erlang语言的局限性,二次开发的成本很高。
Kafka:
Kafka是LinkedIn于2010年12月开发的分布式流媒体平台,开源。它现在是Apache的顶级项目,是一个高性能的跨语言分布式流媒体平台。快速持久化,消息持久化开销在O(1)以下;高吞吐量
ActiveMQ:
是Apache下的一个子项目,介于zeromq和rabbitmq之间。与rabbitmq类似,它可以用少量代码高效地实现高级应用场景,并且只需要较低的成本。被称为消息中间件的“瑞士军刀”。然而,ActiveMQ不够轻量级,并且当有许多队列时,它不能很好地支持。据说也有丢失信息的情况。
Rocketmq:
Rocketmq是阿里巴巴的开源消息中间件。它目前在Apache中孵化,并在纯Java中开发。它具有高吞吐量、高可用性,适合大规模分布式计算
消息队列开源软件 java消息队列mq的实现原理 java mq消息队列详解
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。