美文网首页
亲测实践-CentOS中rabbitMQ的安装和配置

亲测实践-CentOS中rabbitMQ的安装和配置

作者: thinking2019 | 来源:发表于2020-08-12 12:53 被阅读0次

介绍部分
RabbitMQ实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件),它是用Erlang语言编写的,并发能力很强、性能极好、延迟很低。
技术选型中,中小型公司,技术实力较为一般,技术挑战不是特别高,用 RabbitMQ 是不错的选择

安装步骤

1.基础环境

yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel unixODBC-devel httpd python-simplejson epel-release

2.erlang语言环境的安装(大坑)

# 未成功的一次
下载 http://erlang.org/download/otp_src_23.0.tar.gz 三步安装方式安装
最后安装rabbitmq时报 erlang版本不对应,就是下面的“错误2”
明明是对应的版本就是不行。。。
# github中的安装方法 https://github.com/rabbitmq/erlang-rpm
# CentOS 8  /  CentOS 7  是不同的配置
# 我这里是CentOS7
vim /etc/yum.repos.d/rabbitmq_erlang.repo
# 添加内容:
[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
       https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

# 再执行安装
yum install erlang

3.rabbitMQ安装包下载

# 下载位置
https://www.rabbitmq.com/download.html
# 下载安装
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.6/rabbitmq-server-3.8.6-1.el7.noarch.rpm
rpm -ivh rabbitmq-server-3.7.8-1.el7.noarch.rpm
# 启动
systemctl start rabbitmq-server
# 查询状态
systemctl status rabbitmq-server

4.常用命令

service rabbitmq-server start
service rabbitmq-server stop
service rabbitmq-server status
service rabbitmq-server rotate-logs|
service rabbitmq-server restart
service rabbitmq-server condrestart
service rabbitmq-server try-restart
service rabbitmq-server reload
service rabbitmq-server force-reload
ps -ef | grep rabbitmq  查看rabbitMq进程
netstat -anplt | grep LISTEN  rabbitmq默认监听端口15672/5672
# 开机启动
chkconfig rabbitmq-server on

5.备注
RabbitMQ的安装必须按照Erlang的版本来按照,对应目录

https://www.rabbitmq.com/which-erlang.html

登录管理页面

1.开启管理页面

rabbitmq-plugins enable rabbitmq_management

# 关闭
rabbitmq-plugins disable rabbitmq_management

2.添加管理员账号(thinking为自定义用户)

[root@localhost ~]# rabbitmqctl add_user thinking 123
Adding user "thinking" ...
# 修改密码
rabbimqctl change_password thinking newpassword
# 删除用户
rabbitmqctl delete_user thinking

3.添加用户标签(角色)(thinking为自定义用户)

[root@localhost ~]# rabbitmqctl set_user_tags thinking administrator
Setting tags for user "thinking" to [administrator] ...

4.开启远程调用:比如Java(thinking为自定义用户)

[root@localhost ~]# rabbitmqctl set_permissions -p "/" thinking ".*" ".*" ".*"
Setting permissions for user "thinking" in vhost "/" ...

5.登录:http://192.168.225.135:15672/


配置介绍

https://www.rabbitmq.com/configure.html#config-items
## 中文借鉴
https://www.cnblogs.com/operationhome/p/10483840.html

1.配置文件 /etc/rabbitmq/rabbitmq.conf

# 如果不存在时,下载连接
https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.conf.example
# 核心服务变量配置
listeners: 用于监听“plain” AMQP 0-9-1 和 AMQP 1.0的连接(不使用TLS)的主机名/端口
num_acceptors.tcp:Erlang进程能够处理TCP的连接数量
handshake_timeout:AMQP 0-9-1协议的握手最大时间(单位:毫秒)
listeners.ssl:用于监听AMQP 0-9-1 and AMQP 1.0的TLS连接
num_acceptors.ssl:Erlang进程能够处理的客户端的TLS连接数
ssl_options:TLS的配置项
ssl_handshake_timeout:TLS的握手超时时间(单位:毫秒)
vm_memory_high_watermark:触发流量控制的内存临界值,取决于操作系统的内存容量的绝对值或相对值
vm_memory_calculation_strategy:内存使用的报告策略。
allocated:使用Erlang内存分配器统计
rss:使用操作系统的RSS内存报告。
legacy:使用legacy内存报告。这种统计方式是相当不准确的
erlang:和legacy相似
vm_memory_high_watermark_paging_ratio:确定了何时执行消息从内存转移到硬盘,默认 0.5,
当内存消耗 vm_memory_limit * 0.5 时,开始从内存转移到硬盘。
total_memory_available_override_value:该参数用于指定系统的可用内存总量,一般不使用,适用于在容器等一些获取内存实际值不精确的环境
disk_free_limit:Rabbitmq存储数据的可用空间限制,当低于该值的时候,将触发流量限制,设置可参考vm_memory_high_watermark参数
log.file.level:控制记录日志的等级,有info,error,warning,debug
channel_max:最大通道数,但不包含协议中使用的特殊通道号0,设置为0表示无限制,不建议使用该值,容易出现channel泄漏
channel_operation_timeout:通道操作超时,单位为毫秒
heartbeat:表示连接参数协商期间服务器建议的心跳超时的值。如果两端都设置为0,则禁用心跳,不建议禁用
default_vhost:rabbitmq安装后启动创建的虚拟主机

2.环境变量文件 /etc/rabbitmq/rabbitmq-env.conf

# 如果不存在的下载地址
https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq-env.conf.5

3.补充配置文件 advanced.config

https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/advanced.config.example

错误处理

1.缺少依赖包

error: Failed dependencies:
  socat is needed by rabbitmq-server-3.8.6-1.el7.noarch

解决方法:
yum install socat

2.erlang与RabbitMQ的版本不匹配

error: Failed dependencies:
  erlang >= 21.3 is needed by rabbitmq-server-3.8.6-1.el7.noarch

解决方法:
在 https://www.rabbitmq.com/which-erlang.html 找对应的版本
如果还是不行,安装rabbitMQ时增加 nodeps 
rpm -ivh --nodeps rabbitmq-server-3.8.6-1.el7.noarch.rpm

相关文章

网友评论

      本文标题:亲测实践-CentOS中rabbitMQ的安装和配置

      本文链接:https://www.haomeiwen.com/subject/sdbpdktx.html