1.RabbitMQ消息队列
RabbitMQ是基于Erlang语言开发的
注意: Erlang和RabbitMQ版本是有相应的一个关系的如下图3.9.13
的Erlang
版本支持在23.2~24.x
之间
2.将Erlang和RabbitMQ的rpm
源文件放到第二台装有RabbitMQ服务器的opt
文件夹下
3.在Linux中安装Erlang
执行语句
yum -y install esl-erlang_23.0.2-1_centos_7_amd64.rpm
4.检测Erlang语言是否安装成功
执行语句
erl
5.安装RabbitMQ
执行语句
yum install -y rabbitmq-server-3.8.5-1.el7.noarch.rpm
6.查看RabbitMQ的插件列表
执行语句
rabbitmq-plugins list
7.安装RabbitMQ管控制台的插件
执行语句 安装RabbitMQ可视化控制台
rabbitmq-plugins enable rabbitmq_management
8.启动RabbitMQ(或者关闭RabbitMQ)
执行语句
systemctl start rabbitmq-server.service
或者使用以下方法
关闭与启动
① 到指定目录:cd/etc/init.d
② 停止:rabbitmq-server stop
③ 启动:rabbitmq-server start
④ 查看是否停止/启动成功:ps -ef |grep rabbitmq
9.启动RabbitMQ是否启动成功
执行语句查看是否成功
systemctl status rabbitmq-server.service
10.开放默认端口15672
执行语句
firewall-cmd --zone=public --add-port=15672/tcp --permanent
11.访问控制台
默认端口是15672
默认用户名和密码都是guest
会提示用户只能在localhost里面登录,所要去修改,可以使用远程登录
12.开放控制台远程登录权限
- 进入默认安装后创建的
rabbitmq
文件夹
cd /etc/rabbitmq
- 添加配置文件
rabbitmq.config
以下是rabbitmq.config
文件内容写法(注意事项:俩种方法不能同时使用
)
- 第一种写法:
[{rabbit,[{loopback_users,[]}]}].
注意: 这个.千万不能忘记,忘记会导致不能正常远程访问
- 第二种写法(我使用的是这种写法):
#数据管理端口(默认端口为5672)
listeners.tcp.default=5762
#界面管理端口(默认端口为15672)
management.tcp.port=15762
#必须添加它才可以远程访问
#[{rabbit,[{loopback_users,[]}]}].
loopback_users.guest = false
13.重启RabbitMQ服务
systemctl restart rabbitmq-server.service
14.查看RabbitMQ重启是否成功
执行语句
systemctl status rabbitmq-server.service
15.Rabbitmq配置文件说明
配置文件默认路径:/etc/rabbitmq/rabbitmq.conf
(文件不存在可以手动创建)
在RabbitMQ3.7.0之前,RabbitMQ配置文件被命名为
rabbitmq.config
,并使用Erlang语法配置
运行3.7.0或更高版本仍然支持之前的配置,但建议使用新的sysctl格式
sysctl
格式与erlang
格式配置文件对比
##########sysctl 格式
ssl_options.cacertfile = /path/to/testca/cacert.pem
ssl_options.certfile = /path/to/server_certificate.pem
ssl_options.keyfile = /path/to/server_key.pem
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = true
##########Erlang 格式
[
{rabbit, [{ssl_options, [{cacertfile, "/path/to/testca/cacert.pem"},
{certfile, "/path/to/server_certificate.pem"},
{keyfile, "/path/to/server_key.pem"},
{verify, verify_peer},
{fail_if_no_peer_cert, true}]}]}
].
Rabbitmq部分配置项说明
#设置rabbimq的监听端口,默认为[5672]
listeners.tcp.local = 127.0.0.1:5672
#客户端与服务端心跳间隔,用来检测通信的对端是否存活,rabbitmq使用心跳机制来保持连接,设置为0则关闭心跳,默认是600秒,600S发一次心跳包
heartbeat = 60
#包大小,若包小则低延迟,若包则高吞吐,默认131072=128K
frame_max = 131072
#连接客户端数量
channel_max = 128
#内存告警值设置(相对值)
vm_memory_high_watermark.relative = 0.4
#内存阈值,该值为默认为0.5,该值为vm_memory_high_watermark的20%时,将把内存数据写到磁盘。如机器内存16G,当RABBITMQ占用内存1.28G(160.40.2)时把内存数据放到磁盘
vm_memory_high_watermark_paging_ratio = 0.5
#磁盘可用空间设置(绝对值)
disk_free_limit.absolute = 50000
#日志是否在控制台输出
log.console = false
#控制台输出的日志级别
log.console.level = info
log.exchange = false
log.exchange.level = info
#rabbitmq管理页面端口
management.tcp.port = 18085
#rabbitmq管理页面IP地址
management.tcp.ip = 0.0.0.0
#开启guest用户的远程链接
loopback_users.guest = none
16.修改RabbitMQ的默认端口号
- 默认15672端口号更改
第一种方法:
在/etc/rabbitmq/rabbitmq.conf
配置文件中加上如下配置:
1)如果没有则进行创建
cd /etc/rabbitmq
vim rabbitmq.conf
并找到rabbitmq
默认配置文件
cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.3/sbin/
修改目录下的rabbitmq-defaults
文件,并在文件的最后加上这一句
CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf
修改完默认端口后记得输入命令重启rabbitmq
service rabbitmq-server restart
2)否则直接编辑修改
listeners.tcp.default = 5673
或者
[{rabbit, [{tcp_listeners, [5673]}]}]
上面的示例将更改RabbitMQ监听AMQP0-9-1和AMQP 1.0协议客户端的连接端口从5672
到5673
。
RabbitMQ服务器源存储库包含一个名为RabbitMQ.conf.example
的配置文件示例,它包含你可能想要设置的大多数配置项的示例(省略了一些非常模糊的匹配项)。
第二种方法:
在/etc/rabbitmq/rabbitmq-env.conf
配置文件中添加如下配置:
NODE_PORT=5673
注意事项:rabbitmq-env.conf
配置文件中的配置优先级高于rabbitmq.conf
配置文件中的配置
- 默认15672端口号更改
在/etc/rabbitmq/rabbitmq.conf
配置文件中加上如下配置:
management.tcp.port = 15673
- 默认
25672
端口号更改
25672端口用于节点间和CLI工具通信(Erlang分发服务器端口),并从动态范围分配(默认情况下仅限于单个端口,计算方式为AMQP 0-9-1和AMQP 1.0端口+20000),默认情况下通过
RABBITMQ_NODE_PORT
计算是25672,也可以通过RABBITMQ_DIST_PORT
环境变量配置
在/etc/rabbitmq/rabbitmq-env.conf
配置文件中添加如下配置:
DIST_PORT=25674
也可以通过设置 RABBITMQ_NODE_PORT
计算 RABBITMQ_DIST_PORT
端口:
NODE_PORT=5674
上面两种方案一种是直接设置节点和CLI
工具通信的分发端口,另外一种是通过设置RabbitMQ服务器和客户端之间通信端口并计算得到25674
端口号。
- 默认4369端口号更改
EPMD
默认端口号是4369
,但是可以使用ERL_EPMD_PORT
环境变量更改。
列出在当前运行的epmd
中绑定注册的端口号及监听的分发端口:
[root@rabbit1 rabbitmq]# epmd -names
epmd: up and running on port 4369 with data:
name rabbit at port 25672
修改epmd守护进程绑定的端口号:
export ERL_EPMD_PORT=4365
杀死epmd
守护进程指令:
epmd -kill
当然直接在系统中使用export
命令设置环境变量是可以生效的,但是只要系统重启环境变量就失效;可以在/etc/profile
或/root/.bashrc
文件配置系统环境变量,然后source
文件名就可以永久生效了。