淘小兔

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 两种类型:

202202070653197935180000

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链接的建立和销毁很消耗性能。

202202070653204159840001

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。

点击下载

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看内容!

如何获取密码?

 

点击下载