概述

异步消息主要是为了系统与系统之间的通信。有两个很重要的概念:消息代理(message broker)和目的地(destination),当消息发送者发出消息后,消息将有消息代理接管,消息代理保证消息传递到指定的目的地。消息代理将消息放入一个队列(目的地),当有消息接收者时,消息代理将消息传递给接受者,这时候队列里就没有了这条消息。

异步消息主要有两种形式的目的地:队列和主题。队列用于点对点式的消息通信,主题用于发布/订阅式的消息通信。

点对点式确保每条消息只有唯一的发送者和接收者。发布/订阅式是消息发送者发送消息的主题,多个消息接收者监听这个主题。他们分别叫发布者和订阅者。

企业级消息代理

JMS(Java Message Service)就是Java的消息服务,是基于JVM消息代理的规范。而ActiveMQ是一个JMS消息代理的实现。 AMQP(Advanced Message Queuing Protocol)也是一个消息代理的规范,它不仅兼容JMS,还支持跨语言和平台。AMQP的主要实现是RabbitMQ。