ActivityMQ
类型
topic 主题存储,用于订阅/消费模型。主题中的消息会发送给消费者同时处理,只有在消息可以重复处理的场景下使用
queue 队列存储,常用于点对点模型。默认只能由唯一的一个消费者处理,一旦消费消息删除
简单对比
1
Topic
Queue
Publish/Subsribe Message
point to point
有无状态
默认数据是不落地,是无状态的
Queue数据一般会在服务器上以文件形式保存,也可配置成DB存储
完整性保障
并不保证publish的每条数据,subscribe都能接收到
保证每条数据都能接收到,并且不超时
消息是否会丢失
一般来说publish消息到某一个topic时,只有监听着的sub才能接收到,如果没有监听则该topic就丢失了
sender发送消息到queue,reciever可以异步接收消息,如果占时没有处理消息也不会丢失。前提消息不超时
消息发布接收策略
一对多的消息发布策略,监听同一个topic地址的多个sub能够接收消息
一对一的发布策略,一个sender发布的消息只能一个reciever来消费,消费完后通知MQ进行删除或其他操作
消息发送的步骤
获取activityMQ的连接工厂
获取一个MQ的连接
获取session
找到目的地destination消费端,也会从这个地方消费消息
创建消息,向目的地写消息
关闭session
JMS消息由以下三部分组成
消息头
ActivityMQ
类型
topic 主题存储,用于订阅/消费模型。主题中的消息会发送给消费者同