消息队列ActiveMQ是一种跨进程、异步的通信机制,由消息系统来确保消息的可靠传递,同时支持多种传输协议,完全兼容ActiveMQ开源生态以及多语言客户端。开箱即用,用户无需部署且免运维。同时提供用户、角色管理功能,提升用户安全保障。消息队列ActiveMQ适用于异步处理、应用解耦、限流削峰(秒杀活动)、消息通讯等场景,为企业消息传递提供高可用性、出色性能、稳定和安全保障。
ActiveMQ具有如下特性:
高可用性:ActiveMQ高可用版中组内的各个broker间共享消息,可避免单节点故障,提升数据的安全性和服务的可用性。
连接灵活性:提供广泛的连接协议,包括OpenWire,、AMQP、STOMP、MQTT、WS。对众多协议的支持让服务拥有很好的灵活性。
高性能:消息队列ActiveMQ时效性可达到微秒级,延迟低。
高可靠:ActiveMQ通过持久化、传输确认以及发布确定等机制来保证可靠性。
安全保障:支持JAAS安全配置机制,通过管理平台可以对Queue、Topic进行认证授权。
在使用消息队列ActiveMQ前,您需要了解如下概念:
消息:消息由以下三部分组成,消息头、消息属性和消息体。
生产者:消息生产者是由会话创建的一个对象,用于把消息发送到一个目的地。
消费者:消息消费者是由会话创建的一个对象,它用于接收发送到目的地的消息。
目前为您提供消息队列ActiveMQ单机版和高可用版,支持的实例规格和硬盘规格如下。
表-1 实例规格
|
规格编码 |
规格名称 |
网络带宽能力(Mbps) |
IOPS |
最大连接数 |
|
db.c1.medium |
计算型2核4GB |
800 |
2000 |
15000 |
|
db.c1.large |
计算型4核8GB |
1000 |
5000 |
15000 |
|
db.c1.xlarge |
计算型8核16GB |
1500 |
8000 |
15000 |
|
db.c1.2xlarge |
计算型16核32GB |
3500 |
13000 |
15000 |
消息队列ActiveMQ单机版和高可用版支持SSD本地盘,容量为100GB~1000GB(步长为50GB)。
独占式体验:消息队列ActiveMQ实现物理隔离,实例之间互不影响,提供多种规格供用户选择,即开即用,支持对实例和节点进行监控。
流量削峰:消息队列ActiveMQ支持流量削峰,可以节省服务器的资源成本,让服务端处理更加平稳。
异步通信:消息队列ActiveMQ提供异步处理机制,允许用户把消息放入队列,但并不立即处理。支持向队列中放入若干条消息,在需要的时候再去处理。
应用解耦:消息队列ActiveMQ支持独立的扩展或者修改会话两边的处理过程,只需要确保它们遵守同样的接口约束。
主题、队列模型:支持一对一,一对多消费模式,发布者可以使用不同的消费模式使一个或多个消费者同时消费,灵活、可扩展性强。
消息中间件ActiveMQ适用于以下场景:
业务解耦:交易系统,每笔交易订单数据会关联上百个下游业务系统,包括人员信息、行为信息、商品信息、数据计算流计算分析等等,整体业务系统庞大而且复杂,架构设计稍有不合理,将直接影响主站业务的连续性。ActiveMQ业务解耦:即高可用松耦合架构设计、灵活适应业务的快速增长。
图-1 业务解耦架构图
批量处理:消息队列ActiveMQ提供异步处理机制,允许用户把消息放入队列,但并不立即处理。支持向队列中放入若干条消息,统一处理。
图-2 批量处理架构图