RabbitMQ集群(非常详细总结)

RabbitMQ集群(非常详细总结)

大家好,又见面了,我是全栈君。

RabbitMQ安装:

## 1. 首先在Linux上进行一些软件的准备工作,yum下来一些基础的软件包
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz


## 2. 下载RabbitMQ所需软件包(本神在这里使用的是 RabbitMQ3.6.5 稳定版本)
wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm


## 3. 安装服务命令
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
## 4. 修改用户登录与连接心跳检测,注意修改
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
修改点1:loopback_users 中的 <<"guest">>,把<< >>去掉只保留guest (用于用户登录)
修改点2:heartbeat 为10(用于心跳连接)


## 5. 安装管理插件


## 5.1 首先启动服务(后面 | 包含了停止、查看状态以及重启的命令)
/etc/init.d/rabbitmq-server start | stop | status | restart
## 5.2 查看服务有没有启动:lsof -i:5672 (5672是Rabbit的默认端口)
rabbitmq-plugins enable rabbitmq_management
## 5.3 可查看管理端口有没有启动:
lsof -i:15672 或者 netstat -tnlp | grep 15672
## 6. 一切OK 我们访问地址,输入用户名密码均为 guest
## http://你的ip地址:15672/
## 7. 如果一切顺利,那么到此为止,我们的环境已经安装完啦


访问管理台:http://ip地址:15672/ 来访问图形界面 默认用户名均为guest

RabbitMQ集群(非常详细总结)
单机访问效果成功
RabbitMQ集群(非常详细总结)RabbitMQ镜像集群
会展示如何配置一个RabbitMQ集群,要保证三台服务器的IP能通
第一步 集群搭建配置
配置/etc/hosts文件,保证集群节点之间的通信:配置为 ip 名称。配置完成之后刷新hosts文件(刷新不成功,建议重启服务器)

#配置/etc/hosts文件
vim /etc/hosts


#填入内容:
192.168.2.128 A
192.168.2.129 B
192.168.2.130 C


#配置完成之后刷新hosts文件 
/etc/init.d/network restart

第二步 新建文件,指定节点名

#指定节点名 
 /etc/rabbitmq/rabbitmq-env.conf
 
#填入内容:(节点名 和etc/hosts 配置名称一致 如 A,B,C)
NODENAME=rabbit@节点名


第三步 保持 .erlang.cookie一致
保持A,B,C服务器中的.erlang.cookie相同,.erlang.cookie 存在于 /var/lib/rabbitmq/.erlang.cookie我们这里A为主服务(注意:如果mq没有启动过是没有erlang.cookie的)

#scp 拷贝 xxxx为ip 地址 或者 hosts中的B,C
scp -p /var/lib/rabbitmq/.erlang.cookie root@xxxx:/var/lib/rabbitmq/


[root@A ~]# scp /var/lib/rabbitmq/.erlang.cookie root@B:/var/lib/rabbitmq
[root@A ~]# scp /var/lib/rabbitmq/.erlang.cookie root@C:/var/lib/rabbitmq

第四步 运行各个RabbitMQ节点
后台启动各个节点(/usr/lib/rabbitmq/bin/)

#关闭
[root@B bin]# rabbitmqctl stop
#后台启动
[root@B bin]# rabbitmq-server -detached 

第五步 RabbitMQ节点建立集群
B加入到集群rabbit@A

[root@B ~]#rabbitmqctl stop_app 
[root@B ~]#rabbitmqctl join_cluster rabbit@A
[root@B ~]#rabbitmqctl start_app

C加入到集群rabbit@A

[root@C ~]#rabbitmqctl stop_app 
[root@C ~]#rabbitmqctl join_cluster rabbit@A
[root@C ~]#rabbitmqctl start_app

A:不用加入自己
第六步 查看集群状态
我们可以在任意一台机器上查看集群状态

[root@A ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@A
[{nodes,[{disc,[rabbit@A,rabbit@B,rabbit@C]}]},
{running_nodes,[rabbit@C,rabbit@B,rabbit@A]},
{cluster_name,<<"rabbit@A">>},
{partitions,[]},
{alarms,[{rabbit@C,[]},{rabbit@B,[]},{rabbit@A,[]}]}]

已经建立集群成功了(注意我这里只有二台机器)
RabbitMQ集群(非常详细总结)
RabbtiMQ其他操作

  1. 添加一个用户
    rabbitmqctl add_user 用户名 用户密码

  2. 给用户赋角色
    rabbitmqctl set_user_tags 用户名 角色名

  3. 给用户赋权限
    rabbitmqctl set_permissions -p “/” 用户名 “.” “.” “.*”

  4. 删除用户
    rabbitmqctl delete_user 用户名

  5. 查看用户
    rabbitmqctl list_users
    注: 默认用户为guest guest,可新建用户

  6. 给文件赋权限:
    chmod 777 /文件夹名字/文件名字或者*
    如: chmod 777 /var/lib/rabbitmq/.erlang.cookie

  7. 关闭要移除的节点A
    rabbitmqctl stop_app

  8. 在其他节点B移除节点A
    rabbitmqctl forget_cluster_node rabbit@C

操作案例

[root@G bin]# ./rabbitmq-server -deched  --后台启动服务
[root@G bin]# ./rabbitmqctl start_app  --启动服务
[root@G bin]# ./rabbitmqctl stop_app  --关闭服务
[root@G bin]# ./rabbitmq-plugins enable rabbitmq_management --启动web管理插件
[root@G bin]# ./rabbitmqctl add_user zlh zlh  --添加用户,密码
[root@G bin]# ./rabbitmqctl set_user_tags zlh administrator --设置zlh为administrator权限

来源:https://blog.csdn.net/weixin_44519874/article/details/112850653

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111587.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ftp工具哪个好用_iis搭建ftp服务器

    ftp工具哪个好用_iis搭建ftp服务器相信很多网友都听说过ftp扫描工具,但是却对其不是很了解,ftp扫描工具是一种ftp账号软件,用户可在ftp扫描工具的帮助下轻松对网站地址进行扫描,从而采集到账号密码、网站收录等多种信息。在对ftp扫描工具做了大概了解之后,小编带大家解读ftp扫描工具如何使用?一、ftp客户端ftp客户端推荐使用iis7服务器管理工具,可以批量管理ftp站点。它是一款服务于windows及linux系统的批量管理工具,同时也是ftp及vnc的客户端。下载地址:http://yczm.iis7.com/?ccxd二

    2022年10月1日
    2
  • 仿淘宝京东筛选  地图多个标注点添加百度样式检索窗口

    仿淘宝京东筛选  地图多个标注点添加百度样式检索窗口

    2021年10月10日
    47
  • python中range的三种用法

    python中range的三种用法range 函数可以创建一个整数列表 一般用在 for 循环中 1 range stop 0 stop 1 这个代表起始值是零 终止值是 stop 1 步长默认为 1forindexinr 5 print indexis d index 输出是 indexis 0 indexis 1 indexis 2 indexis 3 indexis 4 等价的 C 写法如下 for inti 0 i lt 5 i

    2025年6月30日
    3
  • Dll注入的问题

    Dll注入的问题学习游戏辅助,根据郁金香的教学视频写了Dll注入的代码,针对热血江湖进行Dll注入,失败(通过360任务管理器查看到Dll并未注入到游戏进程中)。但Dll中的SetWindowsHookEx返回值不为空,说明Hook成功?但是为啥没有注入成功呢?已经在游戏进程敲击键盘了【通过键盘钩子来实现Hook的】分析原因,先是反复检查代码,并未发现问题。后面想起来,是否因为是Dll是32位,而游戏是64位?查…

    2022年5月17日
    68
  • python生成器详解_Python 生成器

    python生成器详解_Python 生成器生成器利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。

    2022年8月6日
    11
  • 科学计算编程语言_中国发明了什么编程语言

    科学计算编程语言_中国发明了什么编程语言本文是《打破国外垄断,开发中国人自己的编程语言》系列文章的第1篇。本系列文章的主要目的是教大家学会如何从零开始设计一种编程语言(marvel语言),并使用marvel语言开发一些真实的项目,如移动App、Web应用等。

    2022年10月5日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号