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/hosts192.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_statusCluster 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  1;error_log  /usr/local/nginx/logs/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}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  65;#gzip  on;upstream honeysuckle {ip_hash;server 192.168.161.202:31531;server 192.168.161.201:31531;server 192.168.161.200:31531;}server{ listen 80; location / { proxy_pass  http://honeysuckle;
      } }upstream rabbitmqweb {ip_hash;server 192.168.161.202:15672;server 192.168.161.201:15672;server 192.168.161.200:15672;}server{ listen 15672; 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配置的负载均衡策略)配置的节点

转载于:https://www.cnblogs.com/gytangyao/p/10630934.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

H5+jqweui实现手机端图片压缩上传 Base64

H5jqweui实现手机端图片压缩上传主要功能&#xff0c;使用H5的formData上传base64格式的图片&#xff0c;canvas压缩图片&#xff0c;前端样式使用weui&#xff0c;为方便起见&#xff0c;使用了jquery封装过的weui&#xff0c;jqweui。话不多少&#xff0c;开始上代码。前端代…

09 类的继承

继承一个类 class Person(object): def __init__(self, name, gender): self.name name self.gender gender class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score score 判断类型 isinstance()可以…

启动代码格式:nginx安装目录地址 -c nginx配置文件地址

启动启动代码格式&#xff1a;nginx安装目录地址 -c nginx配置文件地址 例如&#xff1a;[rootLinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf停止nginx的停止有三种方式&#xff1a; 从容停止1、查看进程号[rootLinuxServer ~]# ps -ef…

Lecture 3 Divide and Conquer

1.Divide the problem(instance) into one or more sub-problem; 2.Conquer each sub-problem recursively; 3.Combine solutions.

Lecture 4 Quick Sort and Randomized Quick Sort

Quick Sort --Divide and Conquer --Sorts “in place” --Very practical with tuning Divide and Conquer: 1.Divide: Partition array into 2 sub-arrays around pivot x such that elements in lower sub-array < x < elements in upper sub-array; 2.Conquer: …

VUE config/index.js文件配置

&#xfeff;&#xfeff; 当我们需要和后台分离部署的时候&#xff0c;必须配置config/index.js: 用vue-cli 自动构建的目录里面 &#xff08;环境变量及其基本变量的配置&#xff09;123456789101112131415var path require(path)module.exports {build: {index: path.res…

数据规则列表加导入导出

1.进入bos&#xff0c;打开数据规则&#xff0c;进入列表菜单 2.点击事件-新增操作 3.点击新增 4.点击操作类型&#xff0c;输入%引入 5.点击确定&#xff0c;保存后生效&#xff0c;导出 、引入模板设置同理转载于:https://www.cnblogs.com/RogerLu/p/10643521.html

Lecture 6 Order Statistics

Given n elements in array, find kth smallest element (element of rank k) Worst-case linear time order statistics --by Blum, Floyd, Pratt, Rivest, Tarjan --idea: generate good pivot recursively. Not so hot, because the constant is pretty big.

linux jenkins部署之路之,ftp部署怎么匿名还好用咋解决思密达

怎么安装就不说了&#xff0c;网上一堆 这噶搭是配置 目录是/etc/vsftpd/vsftpd.conf # Example config file /etc/vsftpd/vsftpd.conf# # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daemon more u…

powerCat进行常规tcp端口转发

实战中&#xff0c;我们也会遇到需要我们进行端口转发的情况&#xff0c;比如已经拿下的目标机1是在dmz区&#xff0c;而目标1所在内网的其他目标只能通过目标1去访问&#xff0c;这时候我们就需要端口转发或者代理来进行后渗透。这次就要介绍一个加强版的nc&#xff0c;基于po…

Lecture 7 Hashing Table I

Hash |---Hash function: Division, Multiplication |---Collision: Chaining, Open addressing(Linear,Double hasing) Symbol-table problem: Table S holding n records pointer --> key|satelite data (record) Hashing: Hash function h maps keys “randomly”…

SpringCloud 微服务

一微服务架构概述1.1 微服务特性以及优点每个服务可以独立运行在自己的进程里一系列独立运行的微服务(goods,order,pay,user,search…)共同构建了整个系统每个服务为独立的业务开发&#xff0c;一个微服务只关注某个特定的功能&#xff0c;例如用户管理&#xff0c;商品管理微服…

vue在ie9中的兼容问题

问题总结 https://github.com/vuejs-templates/webpack/issues/260 首先npm install --save babel-polyfill然后在main.js中的最前面引入babel-polyfillimport babel-polyfill在index.html 加入以下代码&#xff08;非必须&#xff09;<meta http-equiv"X-UA-Compatib…

Lecture 9 Random built Binary Search Trees BSTs

Random built Binary Search Trees BSTs E[hight] near 3logn Quick Sort? Relation to Quick Sort: BST sort & Quick sort make same comparisons but in a different order. Randomized BST Sort: 1. Randomly permute A 2. BST sort(A)

Vue项目中遇到了大文件分片上传的问题

Vue项目中遇到了大文件分片上传的问题&#xff0c;之前用过webuploader&#xff0c;索性就把Vue2.0与webuploader结合起来使用&#xff0c;封装了一个vue的上传组件&#xff0c;使用起来也比较舒爽。 上传就上传吧&#xff0c;为什么搞得那么麻烦&#xff0c;用分片上传&#x…

NDK学习笔记-使用现有so动态库

前面将的都是如何使用C/C文件生成so动态库&#xff0c;那么在使用别人的so动态库的时候应该怎么做呢&#xff1f;这篇文章就是使用一个变声功能的动态库&#xff0c;完成对于以有so动态库的说明。 动态库来源 在互联网中&#xff0c;有着许许多多动态库&#xff0c;很多厂商也对…

Spring cloud系列十四 分布式链路监控Spring Cloud Sleuth

1. 概述 Spring Cloud Sleuth实现对Spring cloud 分布式链路监控 本文介绍了和Sleuth相关的内容&#xff0c;主要内容如下&#xff1a; Spring Cloud Sleuth中的重要术语和意义&#xff1a;Span、Trance、AnnotationZipkin中图形化展示分布式链接监控数据并说明字段意义Spring …