RabbitMQ
简介:
RabbitMQ 是一个在AMQP协议标准基础上开发的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器。
①、AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。
基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。
②、开源。
③、使用 Erlang 语言编写,这是一种面向并发的编程语言,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。
通俗的讲:
RabbitMQ是一种消息队列 ,用于常见的进程通信。支持点对点,请求应答和发布订阅模式 并且提供多种语言的支持。常见的java,c#,php都支持。
常被用在异步处理,应用解耦。流量消锋等复杂的业务场景中。和java的kafka一样都属于消息中间件。
接下来我们介绍如何在 Linux 系统上安装 RabbitMQ。后续会在此基础上讲解集群的搭建。
1. 修改host解析 (这里是为了后面做集群)
[root@node1 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.6.111 node1
2 . 安装Erlang
- Rabbitmq 需要erlang环境支持,就像java 程序需要jdk 一样。
安装epel源:
[root@node1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
安装erlang socat
[root@node1 ~]# yum -y install erlang socat
3 . 安装rabbitmq
[root@node1 ~]# mkdir /download&& cd /download
[root@node1 download]# wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
[root@node1 download]# rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
[root@node1 download]# rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm
卸载rabbitmq的命令: 了解就可以。
[root@node1 ~]# rpm -qa rabbitmq-server
rabbitmq-server-3.6.10-1.el7.noarch
[root@node1 ~]# rpm -e rabbitmq-server-3.6.10-1.el7.noarch
[root@node1 ~]# rm -rf /var/lib/rabbitmq/ //清除rabbitmq配置文件
4 . 启动 rabbitmq-server :
[root@node1 download]# systemctl start rabbitmq-server
加入开机自启:
[root@node1 download]# systemctl enable rabbitmq-server
查看端口:
5 . 启动 rabbitmq Web 管理界面:
[root@node1 ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
amqp_client
cowlib
cowboy
rabbitmq_web_dispatch
rabbitmq_management_agent
rabbitmq_management
Applying plugin configuration to rabbit@node1... started 6 plugins.
关闭命令:(了解即可)
[root@node1 ~]# rabbitmq-plugins disable rabbitmq_management
6 . web访问rabbitmq
上面这些做完了,rabbitmq 单机版的部署也完成了,我们可以浏览器访问
默认用户名和密码都是 guest。我们可以用 guest 登录
7 . 安全起见,创建admin账号,删除guest账号:
# 查看当前所有用户
[root@node1 ~]# rabbitmqctl list_users
Listing users
guest [administrator]
[root@node1 ~]#
# 添加新用户
rabbitmqctl add_user username password
[root@node1 ~]# rabbitmqctl add_user admin admin
Creating user "admin"
[root@node1 ~]#
# 设置用户tag,必须是administrator
rabbitmqctl set_user_tags username administrator
[root@node1 ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator]
[root@node1 ~]#
# 赋予用户默认vhost的全部操作权限
rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
[root@node1 ~]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/"
[root@node1 ~]# rabbitmqctl list_users
Listing users
admin [administrator]
guest [administrator]
[root@node1 ~]#
# 查看用户的权限
rabbitmqctl list_user_permissions username
8 . rabbitmq 一些常用命令:
1 启动监控管理器:rabbitmq-plugins enable rabbitmq_management
2 关闭监控管理器:rabbitmq-plugins disable rabbitmq_management
3 启动rabbitmq:rabbitmq-service start (默认是前台启动)
rabbitmq-service -detached (后台启动)
/建议使用systemctl start rabbitmq-server
4 关闭rabbitmq:rabbitmq-service stop
/建议使用systemctl stop rabbitmq-server
5 查看所有的队列:rabbitmqctl list_queues
6 清除所有的队列:rabbitmqctl reset
7 清除指定队列:rabbitmqctl purge_queue name_queue(队列的名字)
8 关闭应用:rabbitmqctl stop_app
9 启动应用:rabbitmqctl start_app