概念:RabbitMQ是一款开源的消息中间件系统,由erlang开发,是AMQP的实现。
架构图大概如上。
broker是消息队列的服务器,比如在linux上,我们安装的rabbitmq就是一个broker,可以通过url+username+password连接。
每个消息服务器可以创建多个vhost,默认的vhost是“/”,linux中通过rabbitmqctl add_vhost 创建vhost,再给指定用户授权即可。
生产者首先通过创建channel与broker连接,类似于创建一个会话,这样可以与消息主机通信发送消息。
消息生产者将消息发送到定义的exchange上,exchange通过不同的转发路由规则将消息转发到相应的队列,消费者选择一个队列监听,如果有多个消费者监听同一个队列,默认是轮询方式,保证每个连接有相同的收到消息的概率。
一个简单的rabbitmq程序:
public class Producer {
private static final String TEST_VHOST = "testvhost";
private static final String TEST_QUEUE_NAME = "task_queue";
private static Connection connec