消息队列对比
| ‘’ | ActiveMQ | RabbitMQ | RocketMq | Joram | HornetQ | OpenMQ | MuleMQ | SonicMQ | ZeroMQ |
|---|---|---|---|---|---|---|---|---|---|
| 关注度 | 高 | 高 | 中 | 中 | 中 | 中 | 低 | 低 | 中 |
| 成熟度 | 成熟 | 成熟 | 比较成熟 | 比较成熟 | 比较成熟 | 比较成熟 | 新产品无成功案例 | 成熟 | 不成熟 |
| 所属社区/公司 | Apache | Mozilla Public License | Alibaba | OW2 | Jboss | Sun | Mule | Progress | |
| 社区活跃度 | 高 | 高 | 中 | 中 | 中 | 低 | 高 | 低 | 低 |
| 文档 | 多 | 多 | 中 | 多 | 中 | 中 | 少 | 少 | 中 |
| 特点 | 功能齐全,被大量开源项目使用 | 由于Erlang语言的并发能力,性能很好 | 各个环节分布式扩展设计,主从 HA;支持上万个队列;多种消费模式;性能很好 | 在 Linux平台上直接调用操作系统的AIO,性能得到很大的提升 | 性能非常好,与MuleESB无缝整合 | 性能优越的商业 MQ | 低延时,高性能,最高43万条消息每秒 | ||
| 授权方式 | 开源 | 开源 | 开源 | 开源 | 开源 | 开源 | 商业 | 商业 | 开源 |
| 开发语言 | Java | Erlang | Java | Java | Java | Java | Java | Java | C |
| 支持的协议 | OpenWire、STOMP、REST、XMPP、AMQP | AMQP | 自己定义的一套(社区提供JMS–不成熟) | JMS | JMS | JMS | JMS | JMS | TCP、UDP |
我们要学习的消息中间件、快速部署
消息: 消息即为数据,数据就会有规划,有长度,有大小
中间件:为我们提供发送消息的程序或者服务。
消息
java 提供了一套标准JMS(java message server)
JMS 消息主体(Body)
JMS提供五种消息主体的形式,每种形式通过消息接口定义:
StreamMessage
消息整体主体包含流式Java原生值,它是连续地被填充和读取的。
MapMessage
消息整体主体包含键值对集合,其中键为字符串,值为Java原生类型。条目访问可被计算器连续地或者名称随机地访问,它的顺序并不一定。
TextMessage
消息整体主体包含一个Java String 对象。.
ObjectMessage
消息整体主体包含一个Serializable 对象,如果需要使用集合对象,确保JDK 1.2或更高。
BytesMessage
中间键
为我们提供发送消息的程序或者服务,目前主流的有 rocketMq 、kafka、rabbitMq、activemq等。
为什么要用消息中间件
异步处理
应用解耦
流量削峰
为什么是RocketMq
常见的消息中间件:Kafka、ActiveMq、Rocketmq、RabbitMQ
稳定无单点HA
集群功能完善
经历过双十一
Java语言实现
架构轻、源码可读性好(面向过程)
生态圈完善,配套好
开源社区活跃
普通消息、顺序消息、分布式事务消息、定时消息
本文对比分析了ActiveMQ、RabbitMQ、RocketMQ等九种消息队列的特性,包括关注度、成熟度、所属社区、社区活跃度、文档数量、特点、授权方式、开发语言和支持的协议。详细介绍了JMS提供的五种消息主体形式,并探讨了使用消息中间件的原因及RocketMQ的优势。
9042

被折叠的 条评论
为什么被折叠?



