ActiveMQ
一、JMS
-
JMS为JAVA程序创建、发送、接受和读取企业消息中的消息,提供了一种通用方法
-
JMS域
-
点对点(Point-to-Point)
- 模式图
- 特点
- 每个消息中只有一个消费者、一旦消息被消费,消息就不再在消息队列中
- 发送者和接受者之间在时间上没有依赖性
- 接受者在成功接受数据之后需向队列应答成功
-
发布订阅(Publish/Subscribe)
- 模式图
-
- 特点
- 每个消息可以有多个消费者
- 时间依赖性(消费者要先于生产者启动 不然会产生消息的积压)
- 针对某个主题的订阅者,必须创建一个订阅者之后,才能消费发布者的消息,而且为了消费消息,订阅者必须保持运行的状态
- 为了缓和这样严格是时间相关性,JMS允许订阅者创建一个可持久化的订阅,这样,即使订阅者没有被激活(运行),也能接收到发布者的消息
- JMS API
-
传统的API接口
- 参数
- ConnectionFactory:客户端用于创建连接的受管对象
- Connection:客户端到JMS提供者之间的活动连接
- Session:发送和接收消息的一个单线程上下文
- MessageProducer:用于 发送消息
- MessageConsumer:用于接收消息
- 流程图
- 参数
-
二、ActiveMQ
- MQ(Message Queue)即消息队列
- 使用消息队列的好处
- 解耦
- 解决并发
- 跨平台
- 保证数据不重发、不丢失
消息队列的好处 - 解耦
- 解决并发
- 跨平台
- 保证数据不重发、不丢失
- 负责建立网络通信的通道 进行数据的可靠传送