A. 资源与参考文档
B. 学习目的
部门目前使用其他部门维护的 WebLogic 的 JMS 消息服务,缺乏足够的技术支持与运维支持。随着基于 Spring Cloud 的微服务化改造的启动与团队技术能力提升,服务内部与服务之间将会更加依赖消息队列,因此部门需要维护自己的消息服务中间件。
在 WebLogic、ActiveMQ、RabbitMQ、Kafka 等消息队列中,最终选择了 RabbitMQ 作为部门主要消息服务中间件。主要原因有:
- 部分业务需求需要保证消息能够持久化,不丢失。ZeroMQ 出局,Kafka 有缺陷
- 与 Spring Cloud Bus 集成,目前只支持 RabbitMQ 与 Kafka
- 性能考虑,Kafka >> RabbitMQ > ActiveMQ
- 成熟度考虑(可用性、可靠性、稳定性)与规范性考虑(支持开放协议),RabbitMQ 比 Kafka 优秀
学习目标:
- 学习 RabbitMQ 基础知识
- 提供 Java 语言 Demos 供开发人员参考
- 集群方案
- 管理方案(用户权限、项目隔离、资源限制)
- 监控方案
C. Linux 环境安装
a. 简单记录在公司内网测试环境 RedHat 6.5 服务器上安装 RabbitMQ 的步骤
1. 安装 Erlang 环境。
RabbitMQ 使用 Erlang 语言开发,所以必须先安装 Erlang 环境。对于无法联网的服务器,推荐下载 RabbitMQ 特制的无依赖的 Erlang RPM 包安装,下载地址:https://github.com/rabbitmq/erlang-rpm/releases
使用 yum 命令安装:yum install erlang-19.3.0-1.el6.x86_64.rpm
可以通过执行 erl 查看是否安装成功
2. 安装依赖
RabbitMQ 3.6.2 开始依赖 socat,下载地址:http://www.dest-unreach.org/socat/
使用 yum 命令安装:yum install socat-1.7.3.2-1.1.el6.x86_64.rpm
3. 安装 RabbitMQ
下载 RabbitMQ 最新版本,下载地址:https://www.rabbitmq.com/install-rpm.html
使用 yum 命令安装:yum install rabbitmq-server-3.6.8-1.el6.noarch.rpm
b. 启停 RabbitMQ
rabbitmq-server start
rabbitmq-server stop
(以上命令在 /sbin/service 目录中)
c. 管理插件
虽然可以通过 RabbitMQ 命令完成所有的管理工作,但是官方提供的管理插件提供了管理页面,方便很多。
RabbitMQ 默认情况下启动时不开启任何插件,需要先通过命令开启管理插件。
查看插件情况:rabbitmq-plugins list
启动管理插件:rabbitmq-plugins enable rabbitmq_management
管理插件启动成功后,可以访问 http://ip:15672 进入管理页面。
d. 创建用户
RabbitMQ 有一个默认用户 guest/guest,默认用户只能通过本地访问。所以需要先通过 RabbitMQ 命令创建用户:
rabbitmqctl add_user admin Pass1234
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin "." "." ".*"
这样就可以使用 admin/Pass1234 从本地登录管理页面了。
D. Windows 环境安装
http://www.rabbitmq.com/install-windows.html
- 安装 Erlang 环境 otp_win64_19.3.exe
- 安装 RabbitMQ rabbitmq-server-3.6.10.exe。安装完成后,RabbitMQ 自动注册为服务并且设置为自动开启
- 从 Start 菜单打开 RabbitMQ Command Prompt,参考上面 Linux 环境执行相同的命令