RabbitMQ官方最新版,由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,因此也是继承了这些优点。
RabbitMQ详细介绍
RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,因此也是继承了这些优点。
AMQP 里主要要说两个组件:Exchange 和 Queue (在 AMQP 1.0 里还会有变动),如下图所示,绿色的 X 就是 Exchange ,红色的是 Queue ,这两者都在 Server 端,又称作 Broker ,这部分是 RabbitMQ 实现的,而蓝色的则是客户端,通常有 Producer 和 Consumer 两种类型:
RabbitMQ使用教程
1.下载并安装
2.开启web页面管理工具。
lubby@ubuntu:/usr/bin$ rabbitmq-plugins enable rabbitmq_management
这个时候能在安装的机器上面通过页面http://localhost:15672 使用默认账户guest密码guest来管理。
3.创建vhost
lubby@ubuntu:/usr/bin$ sudo rabbitmqctl add_vhost finance
二、创建用户分配权限
如果想要在其他机器上面也能登录rabbitmq manager页面需要创建账号,并且分配权限。
1.创建用户
lubby@ubuntu:/usr/bin$ sudo rabbitmqctl add_user admin 123456
2.赋予账户角色
lubby@ubuntu:/usr/bin$ sudo rabbitmqctl set_user_tags admin administrator
3.赋予用户权限
lubby@ubuntu:/usr/bin$ sudo rabbitmqctl set_permissions -p finance admin '.*' '.*' '.*'
RabbitMQ分别和生产者,消费者建立TCP链接,一个TCP链接会被多个channel复用,这样就可以减少RabbitMQ服务器和连接者的TCP的建立。毕竟TCP链接的建立和销毁很消耗性能。
RabbitMQ中分为exchange,routingkey, queue三个概念。exchange是负责把生产者的消息发给绑定的queue;queue就是存放消息的队列,消费者从queue中取数据;routingkey是exchange和queue绑定名称,routingkey是标记exchange该把消息转发给哪些队列。多个queue和exchange绑定的routingkey可以一样。
exchange可以分为direct,fanout,topic,header.其中header基本上很少用到。
direct:消息发给exchange之后直接被转发到所有与其绑定的queue。当生产者发送的时候指定exchange和routingkey,消息会发给和指定exchange绑定且指定routingkey的queue。当生产者直接发送给queue不指定exchange和routingkey则消息会通过默认的direct exchange发送到queue。
fanout:这个就是类似广播的交换器,生产者只需发送给fanout类型的exchange,则所有绑定了该exchange的queue都会收到一份消息,生产者发送的时候只需指定fanout类型的exchange即可。
topic:可以通过设置的routingkey带有#或者*来进行匹配。只要生产者指定了routingkey,那么exchange会匹配和queue绑定的routingkey来把消息传递给queue。
- PC官方版
- 安卓官方手机版
- IOS官方手机版