博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Rabbitmq】Ubuntu环境器集群搭建
阅读量:6328 次
发布时间:2019-06-22

本文共 2476 字,大约阅读时间需要 8 分钟。

环境准备

服务器

文档参考

  • https://packagecloud.io/rabbitmq/rabbitmq-server?filter=debs

  • http://www.rabbitmq.com/install-debian.html

  • https://packages.erlang-solutions.com/erlang/#tabs-debian

rabbitmq 各node server安装

根据官方安装说明 先安装 erlang 在安装 rabbitmq

RabbitMQ needs Erlang/OTP to run. Erlang/OTP packages in standard Debian and Ubuntu also can be quite outdated. Consider installing a newer version, such as 19.3.

安装依赖

# 添加apt 仓库wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.debsudo dpkg -i erlang-solutions_1.0_all.deb# 更新安装sudo apt-get updatesudo apt-get install erlang

安装rabbitmq

# 官方安装脚本curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.deb.sh | sudo bash# 添加rabbitmq 签名 (可略)wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -# 更新并安装sudo apt-get update(可略)sudo apt-get install rabbitmq-server

集群组织

提前准备

  • 修改ulimit限制为51200

# 文件修改sudo vim /etc/security/limits.conf # 结尾插入 * - nofile 51200sudo vim /etc/sysctl.conf          # 结尾插入 fs.file-max = 51200sysctl -p# 启动脚本修改sudo vim /lib/systemd/system/rabbitmq-server.service ## service 中插入 LimitNOFILE=51200sudo systemctl daemon-reload
  • 修改数据路径到新盘 /data/rabbitmq/mnesia

挂载新盘 过程略过

/etc/rabbitmq/ 创建文件 rabbitmq-env.conf
加入一行 RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia

node 之间的认证

  • 关闭守护进程

sudo systemctl stop rabbitmq-server.service
  • 同步cookie 文件

    选取任意一台作为第一个节点,复制改节点下面的 /var/lib/rabbitmq/.erlang.cookie 到其他节点,复制后修改文件权限和属主。

cd /var/lib/rabbitmqsudo chown rabbitmq.rabbitmq ./.erlang.cookiesudo chmod 400 ./.erlang.cookie

添加集群

# 开启内网端口# 所有node执行sudo rabbitmq-server -detached# 带加入的node上执行sudo rabbitmqctl stop_appsudo rabbitmqctl join_cluster rabbit@ip-172-31-13-159 # 第一台node的名称sudo rabbitmqctl start_appsudo rabbitmqctl stopsudo systemctl start rabbitmq-server.service

启用WEB UI

每一个node都需要启用 sudo rabbitmq-plugins enable rabbitmq_management

登录 web管理页面 默认提供guest账号,但是该账号只提供localhost登录,所以需要单独创建用户,使用rabbitmqctl
用户相关命令如下:

$ sudo rabbitmqctl help |grep user    add_user 
# 创建用户 delete_user
# 删除用户 change_password
# 修改密码 clear_password
# 清楚密码,直接登录 authenticate_user
# 测试用户认证(我也不知道2333) set_user_tags
... # 设置用户权限 [] list_users set_permissions [-p
]
clear_permissions [-p
]
list_user_permissions

创建队列镜像

有两种方式,一种是使用rabbitmqctl 工具,另外一种是在web ui直接设置

可以参考下

负载

负载本次使用的是aws elb

创建负载添加每一个节点到elb中, 对列最好建议内网使用,所以开放15672 到公网,开放5672业务端口到内网

总结

本文只针对集群搭建,具体原理应用还请参考官方文档

转载地址:http://inwoa.baihongyu.com/

你可能感兴趣的文章
Spring整合Quartz定时任务执行2次,Spring定时任务执行2次
查看>>
【设计模式】工厂方法模式
查看>>
【转载】Win10系统如何设置所有程序默认以管理员身份运行?
查看>>
面向对象第六章(接口、强转、多态)
查看>>
winform中的Json解析
查看>>
UVa 1151 Buy or Build(最小生成树+枚举子集)
查看>>
php中引用&的真正理解-变量引用、函数引用、对象引用
查看>>
tomcat 下War包部署方法
查看>>
软件工程自评
查看>>
存储过程
查看>>
转载--C# PLINQ 内存列表查询优化历程
查看>>
调用函数后加括号与不加括号的区别
查看>>
Linq左右連接
查看>>
Mysql 一些命令记录
查看>>
实现一个简单的C++协程库
查看>>
java基础---接口和抽象类
查看>>
Selenium2+python自动化5-操作浏览器基本方法
查看>>
查看数据库文件已用空间
查看>>
python学习之老男孩python全栈第九期_day013知识点总结
查看>>
ifdef ANDROID总是不好用
查看>>