消息队列服务 RabbitMQ

栏目: Redis · 发布时间: 6年前

内容简介:RabbitMQ和邮局的主要区别是它处理的不是纸张。它接收、存储并转发二进制数据块,也就是message,消息。RabbitMQ和消息传递中会用到一些术语:

Rabbitmq 是一个消息代理。它的核心思想非常简单:接收并转发消息。你可以把它想象成一个邮局:当你把邮件丢进邮箱时,你非常确定邮递员先生会把它送到收件人手中。在这个比喻中,RabbitMQ就是邮箱、邮局和邮递员。

RabbitMQ和邮局的主要区别是它处理的不是纸张。它接收、存储并转发二进制数据块,也就是message,消息。

术语

RabbitMQ和消息传递中会用到一些术语:

生产者

在现实生活中就好比制造商品的工厂,他们是商品的生产者。生产者只意味着发送。发送消息的程序称之为一个生产者。我们用“P”表示

消息队列服务 RabbitMQ

列队

队列就像存放商品的仓库或者商店,是生产商品的工厂和购买商品的用户之间的中转站。队列就像是一个仓库或者流水线。在RabbitMQ中,信息流从你的应用程序出发,来到RabbitMQ的队列,所有信息可以只存储在一个队列中。队列可以存储很多的消息,因为它基本上是一个无限制的缓冲区,前提是你的机器有足够的存储空间。多个生产者可以将消息发送到同一个队列中,多个消费者也可以只从同一个队列接收数据。这就是队列的特性。队列用下面的图表示,图上面是队列的名字:

消息队列服务 RabbitMQ

消费者

消费者就好比是从商店购买或从仓库取走商品的人,消费的意思就是接收。消费者是一个程序,主要是等待接收消息。我们的用“C”表示

消息队列服务 RabbitMQ

注意: producer、consumer和消息代理不需要生活在同一台机器上,事实上大多数应用中它们会分开住。

安装

#yum -y install epel-release
#yum install erlang #先安装 Erlang
#rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
#yum install rabbitmq-server

1.设置未开机启动

systemctl enable rabbitmq-server

2.启动

systemctl start rabbitmq-server

配置端口

确保可以打开以下端口:

4369:epmd,RabbitMQ节点和CLI工具使用的对等发现服务

5672,5671:由AMQP 0-9-1和1.0客户端使用,没有和使用TLS

25672:由Erlang分配用于节点间和CLI工具通信,并且从动态范围(默认情况下限于单个端口,计算为AMQP端口+20000)分配。详情请参阅联网指南。

15672:HTTP API客户端和rabbitmqadmin(仅当管理插件启用时)

61613,61614:STOMP客户端没有和使用TLS(只有STOMP插件已启用)

1883年,8883:(MQTT客户端没有和TLS,如果MQTT插件已启用

15674:STOMP-over-WebSockets客户端(仅在启用了Web STOMP插件的情况下)

15675:MQTT-over-WebSockets客户端(仅在启用了Web MQTT插件的情况下)

查看状态

[root@centos ~]# rabbitmqctl status
Status of node rabbit@centos ...
[{pid,40209},
 {running_applications,[{rabbit,"RabbitMQ","3.3.5"},
                        {mnesia,"MNESIA  CXC 138 12","4.11"},
                        {os_mon,"CPO  CXC 138 46","2.2.14"},
                        {xmerl,"XML parser","1.3.6"},
                        {sasl,"SASL  CXC 138 11","2.3.4"},
                        {stdlib,"ERTS  CXC 138 10","1.19.4"},
                        {kernel,"ERTS  CXC 138 10","2.16.4"}]},
 {os,{unix,linux}},
 {erlang_version,"Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [async-threads:30] [hipe] [kernel-poll:true]\n"},
 {memory,[{total,35004392},
          {connection_procs,2720},
          {queue_procs,5440},
          {plugins,0},
          {other_proc,13305792},
          {mnesia,58336},
          {mgmt_db,0},
          {msg_index,33936},
          {other_ets,781728},
          {binary,13344},
          {code,16713450},
          {atom,602729},
          {other_system,3486917}]},
 {alarms,[]},
 {listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},
 {vm_memory_high_watermark,0.4},
 {vm_memory_limit,741048320},
 {disk_free_limit,50000000},
 {disk_free,18375475200},
 {file_descriptors,[{total_limit,924},
                    {total_used,3},
                    {sockets_limit,829},
                    {sockets_used,1}]},
 {processes,[{limit,1048576},{used,124}]},
 {run_queue,0},
 {uptime,326}]
...done.
[root@centos ~]#

配置文件

cp /usr/share/doc/rabbitmq-server-3.3.5/rabbitmq.config.example /etc/rabbitmq/
cp /etc/rabbitmq/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
vim /etc/rabbitmq/rabbitmq.config

修改

%%{loopback_users, []},

{loopback_users, []}

开启web管理插件

rabbitmq-plugins enable rabbitmq_management

重启

service rabbitmq-server restart

开通端口

sudo iptables -I INPUT -p tcp -m tcp –dport 15672 -j ACCEPT

sudo iptables -I INPUT -p tcp -m tcp –dport 5672 -j ACCEPT

访问

消息队列服务 RabbitMQ

创建用户

[root@centos ~]# rabbitmqctl add_user admin admin
Creating user "admin" ...
...done.

赋予admin 管理员权限

[root@centos ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
...done.

列出用户

[root@centos ~]# rabbitmqctl list_users
Listing users ...
admin    [administrator]
guest    [administrator]
...done.

登录后界面

消息队列服务 RabbitMQ


以上所述就是小编给大家介绍的《消息队列服务 RabbitMQ》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机程序设计艺术:第4卷 第4册(双语版)

计算机程序设计艺术:第4卷 第4册(双语版)

Donald E.Knuth / 苏运霖 / 机械工业出版社 / 2007-4 / 42.00元

关于算法分析的这多卷论著已经长期被公认为经典计算机科学的定义性描述。迄今已出版的完整的三卷组成了程序设计理论和实践的惟一的珍贵源泉,无数读者都赞扬Knuth的著作对个人的深远影响。科学家们为他的分析的美丽和优雅所惊叹,而从事实践的程序员们已经成功地应用他的“菜谱式”的解到日常问题上,所有人都由于Knuth在书中所表现出的博学、清晰、精确和高度幽默而对他无比敬仰。   为开始后续各卷的写作并更......一起来看看 《计算机程序设计艺术:第4卷 第4册(双语版)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具