ActiveMQ:
一款消息中间件。目的:异步,解耦。
异步:将一些与业务关联不大的功能模块异步出去。
解耦:降低模块之间的藕合。
消息中间件的传输模式
点对点模式:
点对点模式中有三个角色,消息队列(Queue)、发送者(Sender)、接收者(Receiver)。
发送者将消息发送到一个特定的队列中,等待接收者从队列中获取消息。
P2P的三个特点:
- 每个消息只能被一个接收者消费,且消息被消费后默认从队列中删掉(也可以通过其他签收机制重复消费)
- 发送者和接收者之间没有依赖性,生产者发送消息和消费者接收消息并不要求同时运行。
- 接收者在成功接收消息之后需要向队列发送接收成功的确认消息。(ACK机制)。
发布订阅模式
发布订阅模式中的三个角色:主题(Topic)、发布者(Publisher)、订阅者(Subscriber)。
发送者将消息发送到主题队列中,系统再将这些消息传递给订阅者。
发布订阅模式的特点:
- 每个消息可以被多个订阅者消费。
- 发布者和订阅者之间存在依赖性,订阅者必须先订阅主题后才能接收到消息,在订阅前发布的消息,订阅者是接收不到的。
- 非持久化订阅:如果订阅者不在线,此时发布的消息,订阅者也是接收不到的,即使订阅者重新上线也接收不到。
- 持久化订阅:订阅者订阅主题后,即使订阅者不在线,此时发布的消息可以在订阅者重新上线后接收到的。
双向应答模式
消息的发送者也是消息的接收者,消息的接收者也是消息的发送者。