rabbitmq安装、集群搭建
rabbitmq的安装:
CentOS上面部署:
首先修改hosts文件
修改hosts文件
vi /etc/hosts
1.1.1.1 hostname
2.2.2.2 hostname
3.3.3.3 hostname
erlang的安装环境:
rpm -i http://mirror.bjtu.edu.cn/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install erlang
安装rabbitMQ(RPM链接可以从http://www.rabbitmq.com/install-rpm.html来获取)
rpm -ivh http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.5/rabbitmq-server-3.3.5-1.noarch.rpm
启用管理插件,可通过web查看rabbitmq状态
# rabbitmq-plugins enable rabbitmq_management
启动服务:
/etc/init.d/rabbitmq-server start
rabbitmq集群的部署:
集群模式介绍:
1 单一模式:最简单的情况,非集群模式
2 普通模式:默认的集群模式
rabbitMQ中的exchange和queue都包含meta、contents、state等信息,exchange在集群中的每个节点都保存一份数据,
但是queue不一样,queue在集群中对于contents只存储一份,其他节点只存储meta信息
3 镜像模式:把需要的队列做成镜像队列,均在与多个节点,属于rabbitmq的HA方案。
mirror queue是为rabbitMQ高可用的一种方案,相对于普通的集群方案来讲,queue中的消息每个节点都会存在一份copy
开始搭建建集群,采用镜像模式
1.修改配置文件/etc/rabbitmq/rabbitmq.config(如果没有则新建 ),所有节点配置文件一样,本次用3个节点
% Template Path: rabbitmq/templates/rabbitmq.config
[
{kernel, [
{inet_dist_listen_min, 41055},
{inet_dist_listen_max, 41055},
{inet_default_connect_options, [{nodelay,true}]}
]},
{rabbit, [
{log_levels, [connection,debug,info,error]},
{default_vhost, <<"/">>},
{default_user, <<"nova">>},
{default_pass, <<"oBtZFKLF">>}, #修改为nova用户实际的mq密码
{default_permissions, [<<".*">>, <<".*">>, <<".*">>]},
{cluster_partition_handling, autoheal},
{tcp_listen_options, [
binary,
{packet, raw},
{reuseaddr, true},
{backlog, 128},
{nodelay, true},
{exit_on_close, false},
{keepalive, true}
]}
]}
].
% EOF
cat /etc/rabbitmq/rabbitmq-env.conf
RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
RABBITMQ_NODE_PORT=5672
#RABBITMQ_LOG_BASE=/data/rabbitmq/log 日志目录
#RABBITMQ_PLUGINS_DIR=/data/rabbitmq/plugins 插件目录
#RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia 后端存储目录
2 集群配置:
(1)、 启动第一个节点 上的rabbitmq服务,/etc/init.d/rabbitmq-server start
(2)、 复制cookie到其他rabbitmq节点
scp /var/lib/rabbitmq/.erlang.cookie root@NODE:/var/lib/rabbitmq/.erlang.cookie
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
erlang cookie的作用:
Rabbitmq的集群是依附于erlang的集群来工作的,所以必须先构建起erlang的集群景象。Erlang的集群中各节点是经由过程一个magic cookie来实现的,这个cookie存放在 .erlang.cookie 中文件是400的权限。所以必须包管各节点cookie对峙一致,不然节点之间就无法通信
(3) 启动所有节点的rabbitmq,并验证状态为running
rabbitmqctl cluster_status可查看rabbitmq状态
Cluster status of node rabbit@NODE...
[{nodes,[{disc,[rabbit@NODE]}]},
{running_nodes,[rabbit@NODE]},
{partitions,[]}]
...done.
(4) 关闭除第一个节点外的其他节点的app ,并加入到集群中
节点2 节点3上执行:
(1)rabbitmqctl stop_app
(2) rabbitmqctl join_cluster rabbit@节点1的hostname
(3)rabbitmqctl start_app
(5) 验证集群状态,每个节点都应该有如下输出
[{nodes,[{disc,['rabbit@节点1','rabbit@节点2','rabbit@节点3']}]},
{running_nodes,['rabbit@节点1,'rabbit@节点2','rabbit@节点3']},
{cluster_name,<<"rabbit@节点1">>},
{partitions,[]}]
...done.
(6) 添加策略ha-policy
bbitmqctl set_policy ha-all '^(?!amq\.).*' '{"ha-mode": "all"}'
凡是ha. 开始的queue的数据,会同步到集群的所有node
(7)添加用户及权限
rabbitmqctl add_user nova 密码
rabbitmqctl set_permissions -p / nova '.*' '.*' '.*'
到此就结束了,可以通看web(ip:15672)查看rabbitmq状态
常用命令介绍:
rabbitmqctl cluster_status
检查集群有几个节点,检查是否出现了分区现象rabbitmqctl list_queues | grep -v '\<0$'
检查是否有队列积压了消息
rabbitmqctl list_queues name slave_pids synchronised_slave_pids
输出信息每行都关于其中一个队列的slave状态,看一下对于每个队列,slave_pids一列,是不是都有两个slave,且 synchronised_slave_pids一列也有两个slave。每个队列的slave可以是不一样的,但是应该都是两个
rabbitmq安装、集群搭建的更多相关文章
- RabbitMQ入门教程(十四):RabbitMQ单机集群搭建
原文:RabbitMQ入门教程(十四):RabbitMQ单机集群搭建 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://b ...
- RabbitMQ之集群搭建
1.RabbitMQ集群模式RabbitMQ集群中节点包括内存节点(RAM).磁盘节点(Disk,消息持久化),集群中至少有一个Disk节点. 2.普通模式(默认) 对于普通模式,集群中 ...
- rabbitmq普通集群搭建详细步骤
由于工作需求,需要安装rabbitmq,学习之余,记录一下安装过程 准备基础编译环境yum install gcc glibc-devel make ncurses-devel openssl-dev ...
- Consul安装集群搭建
1 consul的安装和配置 1.1 consul agent 命令介绍 下载consul_1.0.0_linux_amd64.zip解压,里面只有一个consul可执行文件,其中,consul最常用 ...
- RabbitMQ镜像集群搭建
RabbitMQ 官网 https://www.rabbitmq.com/ 小编使用的系统环境是CentOS7.4 系统 IP hostname CentOS7.4 1.1.1.1 hostname0 ...
- RabbitMQ单机集群搭建出现Error: unable to perform an operation on node 'rabbit1@ClusterNode1'
参考链接:https://www.cnblogs.com/daryl/archive/2017/10/13/7645749.html 全部步骤和参考链接相同. 前八部都正常,在第九步会报错Error: ...
- rabbitmq安装集群
centos 7.3 64 172.18.39.241 k8s-mini-241172.18.39.242 k8s-mini-242172.18.39.243 k8s-master-243 vim / ...
- rabbitMQ 安装,集群搭建, 编码
RabbitMQ 一.背景 命令行工具: http://www.rabbitmq.com/man/rabbitmqctl.1.man.html 介绍入门文章: http://blog.csdn.net ...
- RabbitMQ的安装及集群搭建方法
RabbitMQ安装 1 安装erlang 下载地址:http://www.erlang.org/downloads 博主这里采用的是otp_src_19.1.tar.gz (200MB+) [roo ...
随机推荐
- PCB 线路板人生
由此开端,增加PCB人生分类栏,后续在此分享PCB 非工作方面所思所想,由于文笔不好,请指正.
- thinkphp data方法
data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,可能大家不太习惯用这个方法,今天来讲解下如何用好data方法. 用法 写操作 通常情况下我们都是通过create方法或者赋值 ...
- centos的vsftp修改上传下载速度
比如你想限制本地用户的上传速度和下载速度为1MB/s,则在vsftpd.conf中添加以下内容:local_max_rate = 1048576 ※ 默认单位是Byte/s
- 5.14JDBC
一.##JDBC 1. 概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库. JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数 ...
- Vue蚂蜂窝Vue-cli+webpack做的
先来看下效果 项目地址 喜欢star一下哦
- 前端-Vue结构思维导图笔记
看不清的朋友右键保存或者新窗口打开哦!喜欢我可以关注我,还有更多前端思维导图笔记有vue结构分析,JS基础,JQ,JS高级,Angular,git等等
- Unity引擎GUI之Slider和Scrollbar
Slider(滑动条):是一个主要用于形象的拖动以改变目标值的控件,他的最恰当应用是用来改变一个数值,最大值和最小值自定义,拖动滑块可在此之间改变,例如改变声音大小. Scrollbar(滚动条):是 ...
- Android App 开机启动画面和开机自动启动APP程序设置
1.当前比较成熟一点的应用基本上都会在进入应用之显示一个启动界面 如腾讯微博 2.准备元素 需要开机启动的图片一张 3.新建Activity AlphaAnimation动画:控制对象alpha水平 ...
- mongodb 下载与安装文档
MongoDB数据库安装及配置环境(windows10系统) windows10系统下MongoDB的安装及环境配置: MongoDB的安装 下载地址: https://www.mongodb.c ...
- DataGridView 单击赋值
void dataGridView1_Click(object sender, EventArgs e) { M_int_judge = ; btnSave.Enabled = true; btnSa ...