• Rabbitmq集群搭建


    0. RabbitMQ 3.4.1安装

    0.1. 安装Erlang

    0.1.1. 添加yum支持

    cd /usr/local/src/
    mkdir rabbitmq
    cd rabbitmq
    
    wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
    rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
    
    rpm --import http://packages.erlang-solutions.com/rpm/erlang_solutions.asc
    
    sudo yum install erlang

    在这里插入图片描述

    0.2 安装RabbitMQ

    上传rabbitmq-server-3.4.1-1.noarch.rpm文件到/usr/local/src/rabbitmq/
    安装:
    rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm

    0.3 启动、停止

    service rabbitmq-server start
    service rabbitmq-server stop
    service rabbitmq-server restart

    3.2.2. 设置开机启动

    chkconfig rabbitmq-server on

    0.5 设置配置文件

    cd /etc/rabbitmq
    cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/
    mv rabbitmq.config.example rabbitmq.config

    0.6 开启用户远程访问

    vim  /etc/rabbitmq/rabbitmq.config

    在这里插入图片描述
    注意要去掉最后面}后面的逗号。

    0.7 开启web界面管理工具

    rabbitmq-plugins enable rabbitmq_management
    service rabbitmq-server restart

    0.8 防火墙开放15672端口

    /sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
    /etc/rc.d/init.d/iptables save

    0.9 添加用户

    在这里插入图片描述

    0.10 用户角色

    1 超级管理员(administrator)
    可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
    2、	监控者(monitoring)
    可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
    3、	策略制定者(policymaker)
    可登陆管理控制台,同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
    4、	普通管理者(management)
    仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
    5、	其他
    无法登陆管理控制台,通常就是普通的生产者和消费者。

    0.11 创建Virtual Hosts

    在这里插入图片描述
    设置权限:
    在这里插入图片描述

    1. mq集群

    https://www.cnblogs.com/knowledgesea/archive/2017/03/11/6535766.html
    https://blog.csdn.net/zpwmail/article/details/78066862

    2 集群成功后,按以下步骤操作

    3. 官网下载

    http://www.haproxy.org/#down

    或者下载到自己电脑,上传上去
    文件名称: haproxy-1.4.14.tar.gz

    4. 安装

    [root@localhost rabbitmq]# cd /usr/local/
    [root@localhost local]# mkdir opt
    [root@localhost local]# cd opt
    上传haproxy-1.4.14.tar.gz文件到此目录
    [root@localhost opt]# tar xvfz haproxy-1.4.14.tar.gz
    [root@localhost opt]# ls
    haproxy-1.4.14 haproxy-1.4.14.tar.gz
    [root@localhost opt]# cd haproxy-1.4.14
    [root@localhost haproxy-1.4.14]# make TARGET=generic PREFIX=/usr/local/opt/haproxy
    [root@localhost haproxy-1.4.14]# make install PREFIX=/usr/local/opt/haproxy
    [root@localhost haproxy-1.4.14]# cp -ra /usr/local/opt/haproxy-1.4.14/examples /usr/local/opt/haproxy/
    [root@localhost haproxy-1.4.14]# mkdir /usr/local/opt/haproxy/conf
    [root@localhost haproxy-1.4.14]# cd /usr/local/opt/haproxy/conf
    [root@localhost conf]# vim haproxy.cfg

    5. 配置

    # cp -ra /usr/local/src/haproxy/haproxy-1.4.14/examples /usr/local/opt/haproxy/

    提供配置文件
      默认源码安装haproxy不提供配置文件,但在其解压目录examples下会提供相关haproxy的实例配置,但有的版本的源码haproxy实例配置不是很全面,最笨的
      办法是使用yum安装rpm包格式的haproxy,然后复制其配置文件件作为参考,然后再将其卸载。此处提供一个简单框架的haproxy配置模板实例,详细的配置请参考官网
      http://cbonte.github.io/haproxy-dconv/1.6/configuration.html

    配置文件

    下面这个配置文件是可用的:				
    # this config needs haproxy-1.1.28 or haproxy-1.2.1
    global
    	log 127.0.0.1 local0 info
    	maxconn 4096
    	stats socket /tmp/haproxy.socket uid haproxy mode 770 level admin
    	daemon
    defaults
    	log	global
    	mode	tcp
    	option	tcplog
    	option	dontlognull
    	retries	3
    #	option redispatch
    	option redispatch
    	#redispatch
    	maxconn	2000
    	timeout connect 5s
    	timeout client 120s
    	timeout server 120s
    	
    
    listen rabbitmq_local_cluster
        bind 0.0.0.0:5670
        mode tcp
        #mode http
        balance roundrobin
        server TMS_TEST-13-54 192.168.13.54:5672 check inter 5000 rise 2 fall 2   
        server TMS_TEST-173-151 192.168.173.151:5672 check inter 5000 rise 2 fall 2 
    
    listen private_monitoring :8100
       mode http
       option httplog
       stats enable
       stats uri    /stats
       stats refresh 5s

    注意:红色字体是 2台集群的hostname及ip ,所以mq集群要先搭建好

    5.1. 绑定端口

    不要配置成下面的样子:
    指定127.0.0.1和端口5670那么消费者和生产者连接不到,
    使用netstat -lntup | grep -i “haproxy” 查看到的监听的端口是”127.0.0.1:5670” 所以 客户端必须访问”127.0.0.1:5670” 才能 连接, 但是这不可行.

    这里写图片描述

    下面这个是正确的配置:
    还要注意配置的 一定要是 mode tcp 因为spring cloud 里的AmqpTemplate
    1 @Autowired
    2 private AmqpTemplate amqpTemplate;
    AmqpTemplate 是基于 AMQP协议这是一个tcp协议,并不是http协议.
    这里写图片描述

    报的错误是:
    [root@TEST51 conf]# /usr/local/opt/haproxy/sbin/haproxy -f /usr/local/opt/haproxy/conf/haproxy.cfg
    [WARNING] 155/170642 (8757) : config : ‘option httplog’ not usable with proxy ‘rabbitmq_local_cluster’ (needs ‘mode http’). Falling back to ‘option tcplog’.
    [root@TEST51 conf]#

    6. 启动

    /usr/local/opt/haproxy/sbin/haproxy -f /usr/local/opt/haproxy/conf/haproxy.cfg
    访问: http://192.168..:8100/stats
    这里写图片描述

  • 相关阅读:
    Java单例模式
    Java中子类覆盖父类方法所必须满足的条件
    Java中break、continue及标签等跳转语句的使用[下]
    CSS控制图片显示区域
    rabbitmq 用户管理
    rabbitmq web管理页面无法访问
    centos6.5 以 zero-dependency Erlang from RabbitMQ 搭建环境
    docker 解决:Get http:///var/run/docker.sock/v1.19/version: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
    解决:java.lang.ArrayIndexOutOfBoundsException: 160 at com.alibaba.fastjson.serializer.SerializeWriter.writeStringWithDoubleQuote(SerializeWriter.java:868)
    centos 解决:Another app is currently holding the yum lock; waiting for it to exit
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13310530.html
Copyright © 2020-2023  润新知