rabbitmq

2020-10-21  本文已影响0人  geelig

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地址修改一下即可),看到页面说明安装成功

上一篇下一篇

猜你喜欢

热点阅读