1 RabbitMQ 概述及安装
1 RabbitMQ 概述及安装
概述
本部分的相关内容引用了书籍 [RabbitMQ 实战指南] 的部分内容,如需完整内容需阅读原书籍。
特点:
- 可靠性:Rabbitmq 使用一些机制来保证可靠性,如持久化、传输确认和发布确认等。
- 灵活的路由:在消息进入队列之前,通过交换器来路由消息。
- 扩展性:可以动态地扩展集群中节点。
- 高可用性:队列可以在集群中的机器上设置镜像,使得在部分节点出现问题的情况下队列仍然可用。
- 多种协议:原生支持 AMQP 协议,还支持 STOMP、MQIT 等多种消息中间件协议。
- 多语言客户端
- 管理界面:RabbitMQ 提供了一个易用的用户界面,使得用户可以监控和管理消息、集群中的节点等。
- 插件机制:可以使用现有的插件,也可以编写自己的插件
安装
RabbitMQ 是由 Erlang 语言编写的,以在 linux 环境下安装为例说明,先安装 Erlang,再安装 RabbitMQ 。先下载资源:
- centos7
- jdk 1.8
- erlang 23.3.4.5
- rabbitmq 3.9.11
卸载老的 RabbitMQ 和 Erlang
1. 卸载RabbitMQ
$ /sbin/service rabbitmq-server stop
$ yum list | grep rabbitmq
$ yum -y remove rabbitmq-server.noarch
$ rm -rf /var/lib/rabbitmq
2. 卸载Erlang
$ yum list | grep erlang
$ yum -y remove erlang-*
$ yum remove erlang.x86_64
$ rm -rf /usr/lib64/erlang
安装 Erlang
- Erlang RPM下载 下载安装包,
$ wget https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.4.7/erlang-23.3.4.7-1.el7.x86_64.rpm
1. 提前安装依赖:$ yum install -y gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf
2. 安装:$ yum install -y /mnt/hgfs/vmshare/rabbitmq/erlang-23.3.4.7-1.el7.x86_64.rpm
3. 查看版本:$ erl
, 退出查看版本$ halt().
安装 RabbitMQ
- RabbitMQ RPM下载 下载安装包
$ wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.11/rabbitmq-server-3.9.11-1.el7.noarch.rpm
- 安装:
$ rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
$ yum install socat logrotate -y
$ yum install -y /mnt/hgfs/vmshare/rabbitmq/rabbitmq-server-3.9.11-1.el7.noarch.rpm
安装后的目录为:
/usr/lib/rabbitmq/lib/rabbitmq_server-3.9.11
RabbitMQ 常用命令
1:第一种方式,不推荐
启动:
$ rabbitmq-server start
停止
$ rabbitmq-server stop
2:第二种方式,推荐
启动:
$ systemctl start rabbitmq-server.service
停止:
$ systemctl stop rabbitmq-server.service
查看状态:
$ systemctl status rabbitmq-server.service
开机自动启动:
$ systemctl enable rabbitmq-server
启动 UI 插件
$ rabbitmq-plugins enable rabbitmq_management
# 查看用户,默认只有guest支持localhost访问
$ rabbitmqctl list_users
# 创建用户及设置权限命令
$ rabbitmqctl add_user {username} {password}
$ rabbitmqctl set_user_tags {username} administrator
# 我们创建admin用户并授权:
$ rabbitmqctl add_user admin admin
$ rabbitmqctl set_user_tags admin administrator
# 另外也可以配置好权限(可选),通过代码登录时需要这个权限
$ rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
PS : UI 页面为http://192.168.1.1:15672/
,如果页面无法访问,需要注意防火墙和 SElinux 的问题
生产和消费消息
通过使用 spring boot 来演示使用 RabbitMQ。
参考文献
- Erlang 官网
- RabbitMQ 官网
- RabbitMQ 官网文档
- [RabbitMQ 实战指南]
- 安装
- 全文示例代码