常见的消息队列
需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:二一四七七七五六三三
目前业界有四款常用的消息队列,它们分别是RabbitMQ、RocketMQ、ActiveMQ和Kafka。 RabbitMQ RabbitMQ在2007年发布,是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最流行的消息中间件之一。 RabbitMQ的主要特性有:
可靠性: RabbitMQ提供了多种技术可以让你在性能和可靠性之间进行权衡。这些技术包括持久性机制、投递确认、发布者证实和高可用性机制; 灵活的路由:消息在到达队列前是通过交换机进行路由的。RabbitMQ为典型的路由逻辑提供了多种内置交换机类型。如果你有更复杂的路由需求,可以将这些交换机组合起来使用,你甚至可以实现自己的交换机类型,并且当做RabbitMQ的插件来使用; 消息集群:在相同局域网中的多个RabbitMQ服务器可以聚合在一起,作为一个独立的逻辑代理来使用; 队列高可用:队列可以在集群中的机器上进行镜像,以确保在硬件问题下还保证消息安全; 多种协议的支持:RabbitMQ支持多种消息队列协议; 多语言支持:RabbitMQ的服务器端用Erlang语言编写,其客户端支持基本所有编程语言; 管理界面: RabbitMQ有一个易用的用户界面,使得用户可以监控和管理消息Broker的许多方面; 跟踪机制:如果消息异常,RabbitMQ提供消息跟踪机制,使用者可以跟踪发现异常; 插件机制:提供了许多插件,来从多方面进行扩展,也可以编写自己的插件;
RabbitMQ的优点有:由于erlang语言的特性,mq 性能较好,高并发; 健壮、稳定、易用、跨平台、支持多种语言、文档齐全; 有消息确认机制和持久化机制,可靠性高; 高度可定制的路由; 管理界面较丰富,在互联网公司也有较大规模的应用; 社区活跃度高;
RabbitMQ的缺点有:
尽管结合erlang语言本身的并发优势,性能较好,但是不利于做二次开发和维护; 实现了代理架构,意味着消息在发送到客户端之前可以在中央节点上排队。此特性使得RabbitMQ易于使用和部署,但是使得其运行速度较慢,因为中央节点增加了延迟,消息封装后也比较大; 需要学习比较复杂的接口和协议,学习和维护成本较高;