Rabbit MQ安装与使用

Rabbit MQ 的安装

第一步 准备好安装包

第二步 安装

安装顺序分别安装erlang,socat,rabbitmq,如下

[root@localhost packages]# rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:erlang-18.3-1.el7.centos         ################################# [100%]
[root@localhost packages]# rpm -ivh socat-1.7.3.2-1.1.el7.x86_64.rpm 
warning: socat-1.7.3.2-1.1.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 87e360b8: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:socat-1.7.3.2-1.1.el7            ################################# [100%]
[root@localhost packages]# 
[root@localhost packages]# rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm 
warning: rabbitmq-server-3.6.5-1.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:rabbitmq-server-3.6.5-1          ################################# [100%]
[root@localhost packages]# 

 第三步 打开管理界面

[root@localhost packages]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  mochiweb
  webmachine
  rabbitmq_web_dispatch
  amqp_client
  rabbitmq_management_agent
  rabbitmq_management

Applying plugin configuration to rabbit@localhost... failed.
 * Could not contact node rabbit@localhost.
   Changes will take effect at broker restart.
 * Options: --online  - fail if broker cannot be contacted.
            --offline - do not try to contact broker.

第四步,修改默认配置信息

 vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app

将:{loopback_users, [<<”guest”>>]},

改为:{loopback_users, []},

原因:rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问

[root@localhost packages]# vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app

第五步 创建配置文件 

[root@localhost packages]# cd /usr/share/doc/rabbitmq-server-3.6.5/
[root@localhost rabbitmq-server-3.6.5]# cp rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
[root@localhost rabbitmq-server-3.6.5]# chown allen /etc/rabbitmq/rabbitmq.config
[root@localhost rabbitmq-server-3.6.5]# cd /etc/rabbitmq/
[root@localhost rabbitmq]# ls -la
total 40
drwxr-xr-x.   2 root  root    52 May  5 05:47 .
drwxr-xr-x. 140 root  root  8192 May  5 05:39 ..
-rw-r--r--.   1 root  root    23 May  5 05:41 enabled_plugins

第六步 启动rabbitmq服务

[root@localhost packages]# service rabbitmq-server start
Starting rabbitmq-server (via systemctl):                  [  OK  ]
[root@localhost packages]# 

service rabbitmq-server stop # 停止服务

service rabbitmq-server restart # 重启服务

service rabbitmq-server status # 查看状态

查看启动

Rabbit MQ安装与使用_第1张图片

添加用户,

[root@localhost ebin]# rabbitmqctl add_user admin admin
Creating user "admin" ...
[root@localhost ebin]# rabbitmqctl set_user_tags admin  administrator
Setting tags for user "admin" to [administrator] ...

 

使用用户登录成功

注意,刚开始我试了只能在本机登录,使用其他机器使用ip来连接的时候一直报如下错误。

并且用java客户端连接的时候也报如下错误

PossibleAuthenticationFailureException: Possibly caused by authentication failure

当改完如上的第四步, 问题解决

Rabbit MQ安装与使用_第2张图片

 

 

Rabbit MQ的一些概念:

Broker
接收和分发消息的应用,RabbitMQ Server就是 Message Broker
 
Virtual host
出于多租户和安全因素设计的,把 AMQP 的基本组件划分到一个虚拟的分组中,类似于网络中的 namespace 概念。当多个不同的用户使用同一个 RabbitMQ server 提供的服务时,可以划分出多个vhost,每个用户在自己的 vhost 创建 exchange/queue 等
Connection
publisher/consumer 和 broker 之间的 TCP 连接
Channel
如果每一次访问 RabbitMQ 都建立一个 Connection,在消息量大的时候建立 TCP Connection的开销将是巨大的,效率也较低。Channel 是在 connection 内部建立的逻辑连接,如果应用程序支持多线程,通常每个thread创建单独的 channel 进行通讯,AMQP method 包含了channel id 帮助客户端和message broker 识别 channel,所以 channel 之间是完全隔离的。Channel 作为轻量级的 Connection 极大减少了操作系统建立 TCP connection 的开销
Exchange
message 到达 broker 的第一站,根据分发规则,匹配查询表中的 routing key,分发消息到queue 中去。常用的类型有:direct (point-to-point), topic (publish-subscribe) and fanout (multicast)
Queue
消息最终被送到这里等待 consumer 取走
Binding
exchange 和 queue 之间的虚拟连接,binding 中可以包含 routing key。Binding 信息被保存到 exchange 中的查询表中,用于 message 的分发依据
 

你可能感兴趣的:(分布式系统,消息队列,rabbitmq)