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进行四层负载均衡设置的更多相关文章

  1. 解决 RabbitMQ 集群 Channel shutdown: connection error 错误(HAProxy 负载均衡)

    相关文章:搭建 RabbitMQ Server 高可用集群 具体错误信息: 2018-05-04 11:21:48.116 ERROR 60848 --- [.168.0.202:8001] o.s. ...

  2. Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived

    文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...

  3. service几种访问类型(集群外负载均衡访问LoadBalancer , 集群内访问ClusterIP,VPC内网负载均衡LoadBalancer ,集群外访问NodePort)

    一.集群外访问(负载均衡) kind: ServiceapiVersion: v1spec: ports: - protocol: TCP port: 4341 targetPort: 8080 no ...

  4. Linux下Solr单机版、集群版安装与配置

    一.安装 1.需要的安装包有apache-tomcat-7.0.47.tar.gz.solr-4.10.3.tgz.tgz(jdk自行安装) 这里默认大家已经安装好jdk与tomcat,所以在这里不做 ...

  5. Docker搭建RabbitMQ集群

    Docker搭建RabbitMQ集群 Docker安装 见官网 RabbitMQ镜像下载及配置 见此博文 集群搭建 首先,我们需要启动运行RabbitMQ docker run -d --hostna ...

  6. RabbitMQ集群架构(HA)并结合.NET Core实操

    一.前言 已经一年没有更新博客了,由于公司事务比较多,并且楼主我也积极在公司项目中不断实践.net core.DDD以及Abp vnext,也积累了一些吐血经验,目前我在做一家在线教育公司负责智慧校园 ...

  7. 安装Nginx四层负载均衡

    Nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信. stream模块默认不安装的,需要手动添加参数:–with-stream,官方下载地址:downlo ...

  8. Springboot 1.5.x 集成基于Centos7的RabbitMQ集群安装及配置

    RabbitMQ简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件). RabbitMQ是一套开源(MPL)的消息队列服务软件,是由LShift提供的一 ...

  9. CentOS7安装RabbitMQ集群

    实验环境 RabbitMQ 集群 server1.example.com    IP: 10.10.10.11    Node: diskserver2.example.com    IP: 10.1 ...

随机推荐

  1. Func和Action的介绍及其用法

    Func是一种委托,这是在3.5里面新增的,2.0里面我们使用委托是用Delegate,Func位于System.Core命名空间下,使用委托可以提升效率,例如在反射中使用就可以弥补反射所损失的性能. ...

  2. logback 常用参数配置详解

    logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写 ...

  3. HTML、CSS、JavaScript网页制作从入门到精通 (刘西杰) pdf扫描版彩色版​

    html.css.JavaScript网页制作从入门到精通中从基础知识开始讲起,如html的基本标记.文字与段落标记.表格标记.超链接标记……同时介绍了目前流行的web标准与css网页布局实例,以及基 ...

  4. 关于 ASP.NET 的 CompilationMode="Never" 性能问题

    今天在优化系统性的时候,想到了 ASP.NET 里的 CompilationMode="Never", 因为用户控件里没有任何代码, 只有控件,把用户控件的编译模式改为 Never ...

  5. MultiTrigger

    MultiTrigger是多条件触发器.意为多个条件同时满足时才会触发. 用法和Trigger差不多. 但是MultiTrigger的条件是在写在自身的判断环境之中. 基本的语法是: <Mult ...

  6. [转]解读Unity中的CG编写Shader系列二

    上一篇文章的例子中我们可以看到顶点着色器的输出参数可以说是直接作为了片段着色器的形参传递过来,那么不由得一个问题浮现出来,顶点着色器的形参是从何处传递过来的? 顶点着色器的形参是gameObject ...

  7. 20165219 《Java程序设计》实验一(Java开发环境的熟悉)实验报告

    20165219 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:王彦博 学号:20165219 成绩: 指 ...

  8. linux上使用tomcat及查看日志

    启动 startup.sh #执行bin/startup.sh #启动tomcatbin/shutdown.sh #停止tomcattail -f logs/catalina.out #看tomcat ...

  9. Ubuntu系统使用apache部署多个django项目(python4.3)

    /etc/apache2/sites-available/pyweb.conf <VirtualHost *:> ServerName 192.168.1.46 DocumentRoot ...

  10. postgreSQL PL/SQL编程学习笔记(四)

    Errors and Messages 1. Reporting Errors and Messages Use the RAISE statement to report messages and ...