作者:cut1089289 | 来源:互联网 | 2023-09-08 12:28
1.activemq
activemq是Apache出品的,完全支持一个完全支持JMS1.1和J2EE 1.4规范的框架.
⒈ 多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
⒉ 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
⒊ 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去
4.支持通过JDBC和journal提供高速的消息持久化
5.不适用于上千个队列的应用场景
2.robbitmq
RabbitMQ是AMQP协议领先的一个实现,它实现了代理(Broker)架构
1.结合erlang语言本身的并发优势,性能较好,但是不利于做二次开发和维护
2.消息在发送到客户端之前可以在中间节点上排队。此特性使得RabbitMQ易于使用和部署,适宜于很多场景如路由、负载均衡或消息持久化等,用消息队列只需几行代码即可搞定。但是,这使得它的可扩展性差,速度较慢,因为中间节点增加了延迟,消息封装后也比较大
3.支持持久化消息
3.rocketmq
rocketmq是阿里使用的开源的分布式消息系统,支持分布式
1.能保证消息的顺序
2.提供丰富的消息拉取模式
3.亿级消息堆积能力
4.同样支持持久化消息
5.部署由一个 命名服务(nameserver)和一个代理(broker)组成,支持在broker端对消息进行过滤
6.高可用,可以支撑淘宝的双十一流量
4.kafka
kafka的设计初衷就是为了统计日志
1.吞吐量大,即使是非常普通的硬件Kafka也可以支持每秒数百万的消息
2.支持分布式
3.可靠性较前面的稍弱(少量丢失消息)