1.rabbitmq 集群版安装及使用nginx进行四层负载均衡设置
1.安装erlang
需要注意erlang的版本是否满足rabbitmq的需求
这里用到的版本是:Erlang 19.0.4 RabbitMQ 3.6.15
wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm
yum -y install erlang
1.1测试erlang是否安装
erl -version
2.安装rabbitmq
wget https://www.rabbitmq.com/releases/rabbitmq-server/current/rabbitmq-server-3.6.15-1.el6.noarch.rpm yum install rabbitmq-server-3.6.15-1.el6.noarch.rpm
2.1其他相关命令
启动:systemctl start rabbitmq-server 开机自动启动:systemctl enable rabbitmq-server 查看 rabbitmq-server 状态:rabbitmqctl status
2.2配置网页插件
首先创建目录,否则可能报错: mkdir /etc/rabbitmq 然后启用插件: rabbitmq-plugins enable rabbitmq_management
2.3配置防火墙
配置linux 端口 15672 网页管理 5672 AMQP端口: firewall-cmd --permanent --add-port=15672/tcp firewall-cmd --permanent --add-port=5672/tcp systemctl restart firewalld.service
现在你在浏览器中输入服务器IP:15672 就可以看到RabbitMQ的WEB管理页面了
2.4配置访问账号密码和权限
默认网页是不允许访问的,需要增加一个用户修改一下权限,代码如下: rabbitmqctl add_user rabbit 123456 //添加用户,后面两个参数分别是用户名和密码 rabbitmqctl set_permissions -p / rabbit ".*" ".*" ".*" //添加权限 rabbitmqctl set_user_tags rabbit administrator //修改用户角色 然后就可以远程访问了,然后可直接配置用户权限等信息。 登录:http://ip:15672 登录之后在admin里面把guest删除。
3.开始配置集群
3.1配置节点的host
vim /etc/hosts 192.168.161.200 slave1 192.168.161.201 slave2 192.168.161.202 slave3
集群中的所有节点均需要配置
3.1配置erlang的cookie,cookie要一致
官方在介绍集群的文档中提到过.erlang.cookie一般会存在这两个地址:第一个是$home/.erlang.cookie;第二个地方就是/var/lib/rabbitmq/.erlang.cookie。
如果我们使用解压缩方式安装部署的rabbitmq,那么这个文件会在${home}目录下,也就是$home/.erlang.cookie。
如果我们使用rpm等安装包方式进行安装的,那么这个文件会在/var/lib/rabbitmq目录下。
如果修改文件,rabbitmq不能启动,这个时候用这个命令修改一下cookie: chmod 400 .erlang.cookie
3.2查看集群信息,确定集群的名称
rabbitmqctl cluster_status
Cluster status of node rabbit@slave2
[{nodes,[{disc,[rabbit@slave1,rabbit@slave2,rabbit@slave3]}]},
{running_nodes,[rabbit@slave3,rabbit@slave1,rabbit@slave2]},
{cluster_name,<<"rabbit@slave1">>},
{partitions,[]},
{alarms,[{rabbit@slave3,[]},{rabbit@slave1,[]},{rabbit@slave2,[]}]}]
查看cluster_name的值
3.3加入集群
1.停止当前要加入到集群的节点的rabiitmq服务
rabbitmqctl stop_app
2.加入集群
示例命令: rabbitmqctl join_cluster rabbit@slave1
3.启动rabbitmq服务
rabbitmqctl start_app
4.可以用命令 rabbitmqctl cluster_status查看节点是否正确加入,也可以使用webUI查看

4 开始配置负载均衡
4.1 nginx的安装和启用stream模块的方法
4.2关键配置
user nginx;
worker_processes ;
error_log /usr/local/nginx/logs/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections ;
}
http {
include /usr/local/nginx/conf/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /usr/local/nginx/logs/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout ;
#gzip on;
upstream honeysuckle {
ip_hash;
server ;
server ;
server ;
}
server{
listen ;
location / {
proxy_pass http://honeysuckle;
}
}
upstream rabbitmqweb {
ip_hash;
server ;
server ;
server ;
}
server{
listen ;
location / {
proxy_pass http://rabbitmqweb;
}
}
include /etc/nginx/conf.d/*.conf;
}
stream{
upstream rabbitmq{
server 192.168.161.200:5672 weight=1;
server 192.168.161.201:5672 weight=1;
server 192.168.161.202:5672 weight=1;
}
server{
listen 5672;
proxy_pass rabbitmq;
}
}
4.3 测试是否生效
最直观的办法是使用rabbitMQ web查看连接是否可以命中(根据nginx配置的负载均衡策略)配置的节点
1.rabbitmq 集群版安装及使用nginx进行四层负载均衡设置的更多相关文章
- 解决 RabbitMQ 集群 Channel shutdown: connection error 错误(HAProxy 负载均衡)
相关文章:搭建 RabbitMQ Server 高可用集群 具体错误信息: 2018-05-04 11:21:48.116 ERROR 60848 --- [.168.0.202:8001] o.s. ...
- Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived
文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...
- service几种访问类型(集群外负载均衡访问LoadBalancer , 集群内访问ClusterIP,VPC内网负载均衡LoadBalancer ,集群外访问NodePort)
一.集群外访问(负载均衡) kind: ServiceapiVersion: v1spec: ports: - protocol: TCP port: 4341 targetPort: 8080 no ...
- Linux下Solr单机版、集群版安装与配置
一.安装 1.需要的安装包有apache-tomcat-7.0.47.tar.gz.solr-4.10.3.tgz.tgz(jdk自行安装) 这里默认大家已经安装好jdk与tomcat,所以在这里不做 ...
- Docker搭建RabbitMQ集群
Docker搭建RabbitMQ集群 Docker安装 见官网 RabbitMQ镜像下载及配置 见此博文 集群搭建 首先,我们需要启动运行RabbitMQ docker run -d --hostna ...
- RabbitMQ集群架构(HA)并结合.NET Core实操
一.前言 已经一年没有更新博客了,由于公司事务比较多,并且楼主我也积极在公司项目中不断实践.net core.DDD以及Abp vnext,也积累了一些吐血经验,目前我在做一家在线教育公司负责智慧校园 ...
- 安装Nginx四层负载均衡
Nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信. stream模块默认不安装的,需要手动添加参数:–with-stream,官方下载地址:downlo ...
- Springboot 1.5.x 集成基于Centos7的RabbitMQ集群安装及配置
RabbitMQ简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件). RabbitMQ是一套开源(MPL)的消息队列服务软件,是由LShift提供的一 ...
- CentOS7安装RabbitMQ集群
实验环境 RabbitMQ 集群 server1.example.com IP: 10.10.10.11 Node: diskserver2.example.com IP: 10.1 ...
随机推荐
- Azure 网站、云服务和虚拟机比较
最后更新时间(英文版):09/24/2014 最后更新时间(中文版):04/11/2015 Azure 提供几种方式托管 web 应用程序,如 Azure 网站.云服务和虚拟机.查看这些不同的选项后, ...
- py_initialize:C调Python出错 是初始化错误?
还是pythonpath和pythonname变量没有配置正确? py_initialize()方法是什么? In an application embedding Python, this shou ...
- 数据库索引与b+树
数据库索引详解 索引 当我们在设计数据库的时候,对表的一些属性有时会加上索引,但索引为什么能提高检索速率呢?是不是用了索引就一定可以提高效率呢?不同索引之间有什么区别呢?搞懂这些问题是灵活运用索引的必 ...
- C#静态类 静态方法与非静态方法比较
静态类 在类(class)上加入static修饰,表示该类无法被实例化,并将该类中,无法实例化变量或函数 静态类的主要特性 仅包含静态成员 无法实例化 静态类的本质,时一个抽象的密封类,所以不能被继承 ...
- Jquery Plugins Jquery Validate
Jquery Validate 一.什么是Jquery Validate: jQuery Validate 插件为表单提供了强大的验证功能. 二.常用值: 1 required:true 必须输入 ...
- 严选 Android 路由框架优化(上篇)
0 背景 早前严选 Android 工程,使用原生 Intent 方式做页面跳转,为规范参数传递,做了编码规范,使用静态方法的方式唤起 Activity public static void star ...
- [转] Draw Call未被批处理?告诉你在Unity 5.6中如何查找原因 [复制链接]
Unity在5.6之前的版本中并未提供很直接的方式来查找Draw Call未被批处理的原因,但Unity 5.6在Frame Debugger中新增了一项功能,帮助开发者查找相关信息.今天这篇文章就为 ...
- php代码审计5审计命令执行漏洞
命令执行漏洞:通过易受攻击的应用程序在主机操作系统上执行任意命令,用户提供的数据(表单,cookie,http头等)未过滤 挖掘思路:用户能够控制函数输入,存在可执行代码的危险函数 命令执行和代码执行 ...
- 有关unixODBC:Data source name not found, and no default driver specified的问题
还是昨天测试postgresql的有关Mirroring Controller的功能时出的问题(真TM是个坑). 首先说下环境: 操作系统平台:RHEL6 x86_64 unixODBC版本:2.3. ...
- vim多行注释与删除
一.多行注释 1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;2. 在行首使用上下键选择需要注释的多行;3. 按下键盘(大写)“I”键,进入插入模式:4. 然后输入注 ...