rabbitmq

作者: geelig | 来源:发表于2020-10-21 17:49 被阅读0次

    1、安装版本概述

    rabbitmq 3.6.9

    otp版本19.3

    HAProxy version 1.5.18(通过yum安装)

    2、所使用测试服务器

    服务器名称erp2:192.168.30.238(主节点,结点名称rabbit-2)

    服务器名称vpn-servere:192.168.30.211(从节点,结点名称rabbit-1)

    3、相关需要开放的端口

    5672 :rabbitmq服务端口

    15672 :rabbitmq网页管理页面端口

    5673:HAProxy端口  (在主节点服务器上开放)

    8100:HAProxy网页管理页面端口(在主结点服务器上开放)

    4、注意事项

    本文所有linux的命令需要在有root权限的情况下执行

    **两台服务器必须能够相互ping通**

     erlang/otp linux下安装

    1、找一个存放rabbitmq的文件夹解压缩

    yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel && wget http://erlang.org/download/otp_src_19.3.tar.gz

    tar -zxvf otp_src_19.3.tar.gz

    2、进解压后的目录

    cd otp_src_19.3

    3、编译和安装

    ./configure --prefix=/data/otp_src --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac

    make

    make install

    4、目录位置

    我得到路径/data/otp_src/bin

    5、编辑相关文件

    vim ~/.bash_profile

    6、向其中添加一行环境变量,其中PATH后的路径是**上面路径**

    export PATH=/data/otp_src/bin:$PATH

    7、使环境变量生效

    source ~/.bash_profile

    8、查看是否安装成功

    [root@rabbitmq1 haproxy]# erl

    Erlang/OTP 19 [erts-8.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]Eshell V8.3 (abort with ^G)

    1>ssl:versions().

    [{ssl_app,"8.1.1"}, 

    {supported,['tlsv1.2','tlsv1.1',tlsv1]}, 

    {available,['tlsv1.2','tlsv1.1',tlsv1,sslv3]}]

    2>halt().

    命令行出现Eshell显示下图则说明安装成功

     RabbitMQ安装 linux下

    1、解压缩到一个文件夹中

    访问 https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.6.9 下载rabbitmq-server-generic-unix-3.6.9.tar.xz

    tar -xvf rabbitmq-server-generic-unix-3.6.9.tar.xz

    2、进入解压后目录

    cd rabbitmq_server-3.6.9/sbin

    3、开启服务观察是否安装完成

    ./rabbitmq-server

    出现RabbitMQ版本号如图所示即安装完成

    4、查看安装路径

    /data/rabbitmq_server-3.6.9/sbin

    5、添加到环境变量

    vim ~/.bash_profile

    (其中添加一行,路径更改为自己的安装路径)

    export PATH=/data/rabbitmq_server-3.6.9/sbin:$PATH

    6、使环境变量生效

    source ~/.bash_profile

    7、开启网页管理工具和日志记录工具(在sbin目录下执行,rabbitmq服务需先关闭)(直接执行如果出现异常则去掉 ./ )

    ./rabbitmq-plugins enable rabbitmq_management

    ./rabbitmq-plugins enable rabbitmq_tracing

    8、后台启动rabbitmq-server

    ./rabbitmq-server -detached

    9、查看运行状态,观察到pid则开启成功。

    如果执行rabbitmqctl出现命令不存在请重新执行步骤6和7

    rabbitmqctl status

    10、创建一个新用户admin,密码admin

    rabbitmqctl add_user admin admin

    11、授予管理员权限

    rabbitmqctl set_user_tags admin administrator

    12、浏览器中访问该服务器的ip端口号15672 (需提前在linux中开启端口15672 和端口5672)登录页面用户名admin 密码admin

    13、添加一个新的virtual host 如图

    14、点击/v_admin进入

    15、给admin授权

    搭建集群

    **前提准备**

    **两台**按上述步骤安装好otp和rabbitmq的服务器

    此处选用服务器一为**主**结点ip 192.168.30.238

    另一台为**从**结点ip 192.168.30.211(注意对应好实际自己的主从结点服务器ip)

    **步骤**

    1、找到两台服务器中cookie所在位置

    find -name ".erlang.cookie"

    2、将从结点服务器中的.erlang.cookie全部覆盖替换成主服务器上的.erlang.cookie  可以利用scp直接复制

    (此处的cookie注意要设置只读权限(默认只读,如果修改了需要最后复制后再重新设置一下):chmod 400 .erlang.cookie)

    3、修改host文件,添加双方ip其中rabbit-2所在为主节点

    ***\*!!此处两个ip后面的名称为命令行中的主机用户名\****

    vi /etc/hosts

    (添加两个主机名和ip,删除括所有括号)

    192.168.30.238 vpn-servere    (这个是将来的主节点)

    192.168.30.211 erp2           (这个是将来的从结点)

    4、关闭两台服务器的rabbitmq,如果出现命令无法找到请重新执行source ~/.bash_profile

    rabbitmqctl stop

    5、 在第一个主节点服务器上运行,后台开启第一个rabbitmq主节点

    RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit-2 rabbitmq-server start &

    6、在第二个从结点服务器上运行

    RABBITMQ_NODE_PORT=5672 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener[{port,15672}]" RABBITMQ_NODENAME=rabbit-1 rabbitmq-server start &

    7、(在主结点服务器238上执行)把rabbit-2设置为主结点(自行删除所有括号)

    rabbitmqctl -n rabbit-2 stop_app (关闭结点)

    rabbitmqctl -n rabbit-2 reset  (清除历史数据)

    rabbitmqctl -n rabbit-2 start_app (启动结点)

    8、(在从节点服务器211上执行)rabbit-1相关命令如下(自行删除所有括号):

    rabbitmqctl -n rabbit-1 stop_app (关闭结点)

    rabbitmqctl -n rabbit-1 reset  (清除历史数据)

    rabbitmqctl -n rabbit-1 join_cluster rabbit-2@'vpn-servere'(加入集群)

    rabbitmqctl -n rabbit-1 start_app (启动结点)

    效果如下:


    接下来要给主节点创建一个admin跟刚安装时候步骤类似(主服务器操作)

    rabbitmqctl -n rabbit-2 add_user admin admin

    rabbitmqctl -n rabbit-2 set_user_tags admin administrator

    11、利用admin登录rabbit-2所在的网页端显示如下两个结点则一般集群搭建完成

    12、此处同上刚安装的时候创建一个v_admin的virtualhost。并给admin相应访问权限。

    13、查看集群状态(在主节点所在服务器238上执行):

    rabbitmqctl -n rabbit-2    cluster_status

    如图所示可以看到集群中有两个rabbitmq结点

    14、设置镜像集群状态,在网页管理页面中配置策略如下图

    (1)如图

    (2)如下图

    15、观察创建的queue有如下标志即配置成功

    补充:ps -ef | grep rabbitmq | grep -v grep | awk '{print $2}' | xargs kill -9 可以用来杀死所有rabbitmq进程,如果在启动运行的时候发现rabbitmq已经在启动的话可以用此命令关闭。

    安装HAProxy

    在主节点所在服务器上238安装

    1、安装

    yum install haproxy

    2、启动

    haproxy

    3、找到配置文件所在位置 可能会有两个,那就两个都修改

    find / -name haproxy.cfg

    我的文件所在位置/etc/haproxy/haproxy.cfg

    4、vim直接把原文件内容修改为如下内容:<font color='red'> **记得将其中对应主从结点的ip地址替换为自己服务器的ip地址**! </font>

    # Example configuration for a possible web application.  See the

    # full configuration options online.

    #

    #   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt

    #

    #---------------------------------------------------------------------

    #---------------------------------------------------------------------

    # Global settings

    #---------------------------------------------------------------------

    global

        # to have these messages end up in /var/log/haproxy.log you will

        # need to:

        #

        # 1) configure syslog to accept network log events.  This is done

        #    by adding the '-r' option to the SYSLOGD_OPTIONS in

        #    /etc/sysconfig/syslog

        #

        # 2) configure local2 events to go to the /var/log/haproxy.log

        #   file. A line like the following can be added to

        #   /etc/sysconfig/syslog

        #

        #    local2.*                       /var/log/haproxy.log

        #

        log         127.0.0.1 local2

        chroot      /var/lib/haproxy

        pidfile     /var/run/haproxy.pid

        maxconn     4000

        user        haproxy

        group       haproxy

        daemon

        # turn on stats unix socket

        stats socket /var/lib/haproxy/stats

    #---------------------------------------------------------------------

    # common defaults that all the 'listen' and 'backend' sections will

    # use if not designated in their block

    #---------------------------------------------------------------------

    defaults

        mode                    tcp

        log                     global

        option                  httplog

        option                  dontlognull

        option http-server-close

        option forwardfor       except 127.0.0.0/8

        option                  redispatch

        retries                 3

       #timeout http-request    10s

       #timeout queue           1m

        timeout connect         20

        timeout client          1m

        timeout server          1m

        timeout http-keep-alive 20s

        timeout check           20s

        maxconn                 3000

    #---------------------------------------------------------------------

    # main frontend which proxys to the backends

    #---------------------------------------------------------------------

     listen rabbitmq_cluster

    bind 192.168.30.238:5673   #通过5673对m1和m2进行映射

    option tcplog       #记录TCP连接状态和时间

    mode tcp            #四层协议代理,即对TCP进行转发

    option tcpka        #开启TCP的Keep Alive(长连接模式)

    timeout connect 10s  #haproxy与mq建立连接的超时时间

    timeout client  1m  #客户端与haproxy最大空闲时间

    timeout server  1m  #服务器与haproxy最大空闲时间

    balance roundrobin  #采用轮询转发消息

    #每5秒发送一次心跳包,如果连续两次有响应则代表状态良好

    #如果连续3次没有响应,则视为服务故障,该节点将被剔除

    server rabbit-2 192.168.30.238:5672 check inter 5s rise 2 fall 2

    server rabbit-1 192.168.30.211:5672 check inter 5s rise 2 fall 2

    #开启监控服务

    listen stats

    bind 192.168.30.238:8100   #监听端口

    stats refresh 30s          #每30秒刷新一次

            mode  http

    stats enable

    stats uri /rabbitmq-stats   #统计页面uri

       #统计页面用户名和密码

    5、 启动haproxy命令如下

    haproxy -f /etc/haproxy/haproxy.cfg

    若此时启动报错如下图

    则搜索server-key.pem文件和server-cert.pem文件,将两个文件中的内容合在一起如下图。两个文件都互相添加一下内容

    5、再次启动

    haproxy -f ./etc/haproxy/haproxy.cfg

    6、 http://192.168.30.238:8100/rabbitmq-stats访问网页(ip地址修改一下即可),看到页面说明安装成功

    相关文章

      网友评论

          本文标题:rabbitmq

          本文链接:https://www.haomeiwen.com/subject/uvstdktx.html