• Centos7 安装rabbitmq(转载)


    原文地址:http://blog.csdn.net/wenyu826/article/details/71108279

    安装Erlang

    从链接https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_19.3-1~centos~7_amd64.rpm下载centos7的rpm包(19.3) 
    首先需要安装erlang包的依赖项:

    yum install epel-release
    yum install unixODBC unixODBC-devel wxBase wxGTK SDL wxGTK-gl

    安装erlang:

    rpm -ivh esl-erlang_19.3-1~centos~7_amd64.rpm

    测试安装是否成功:

    [root@albert software]# erl
    Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]

    安装Rabbitmq

    从链接http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-3.6.9-1.el7.noarch.rpm下载rabbitmq(3.6.9)的rpm包。 
    使用yum安装rabbitmq

    yum install rabbitmq-server-3.6.9-1.el7.noarch.rpm

    此时会提示依赖包erlang >= R16B-03,然后继续会提示需要下载依赖包。 
    下载完成之后,当在安装的时候有部分依赖包是会安装失败的。安装失败的基本都是erlang的,因为我们前面已经安装了erlang19.3 但是可能依赖的版本不一致的原因吧,这个时候可以查看我们已经安装的 erlang

    rpm -qa | grep erlang

    会显示esl-erlang-xxxxx , 此时卸载掉我们刚刚安装的erlang

    rpm -e esl-erlang

    然后重新执行

    yum install rabbitmq-server-3.6.9-1.el7.noarch.rpm

    此次执行之后会安装相关的erlang依赖,版本好像是R16B-03.(此处不确定先不安装erlang19.3而直接安装rabbitmq-server会不会也可以成功,好像曾经尝试过但是rabbitmq-server安装的时候会报错)。 
    查看安装的rabbitmq和erlang

    whereis rabbitmq
    whereis erlang

    进入rabbitmq/bin目录

    rabbitmq-plugins enable rabbitmq_management

    开启管理功能。 
    启动rabbitmq服务

    rabbitmq-server -detached

    添加用户并设置权限:

    rabbitmqctl add_user albert albert
    rabbitmqctl set_user_tags albert administrator

    集群部署

    现有两台机器ip以及hostname分别为 
    192.168.232.130 计算机名为cecily 
    192.168.232.129 计算机名为albert 
    在两台机器cecily和albert的/etc/hosts 末尾都加上 
    192.168.232.130 cecily 
    192.168.232.129 albert 
    然后查看添加的结果:

    [root@albert /]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.232.129 albert
    192.168.232.130 cecily

    查找.erlang.cookie文件的位置

    find -name .erlang.cookie

    两台机器的.erlang.cookie要一直,这是erlang通讯所需要用到的。 
    假设从统一使用albert机器的.erlang.cookie 
    则将albert的.erlang.cookie文件复制到cecily机器的对应路径 
    一般为/root/.erlang.cookie 和 /var/lib/rabbitmq/.erlang.cookie

    此时查询机器的服务状态

    rabbitmqctl cluster_status

    如果异常的话建议重新启动解决。 
    将cecily机器添加到albert中,先将两个机器的防火墙关闭

    systemctl stop firewalld.service

    在cecily机器执行

    rabbitmqctl stop_app
    rabbitmqctl join_cluster --ram rabbit@albert
    rabbitmqctl start_app

    这样就将cecily的rabbitmq添加到了albert的集群中。

    Haproxy负载均衡

    安装haproxy

    yum install haproxy

    修改haproxy配置 /etc/haproxy/haproxy.cfg 
    添加如下内容:

    #把rabbitmq节点的管理界面也放到haproxy
    listen rabbitmq_admin
        bind 0.0.0.0:8600
        server albert 192.168.232.129:15672
        server cecily 192.168.232.130:15672
    ######################
    
    ##raiibitmq集群负载均衡配置
    listen rabbitmq_cluster
        bind 0.0.0.0:8660
        option tcplog
        mode tcp
        timeout client 3m
        timeout server 3m
        balance roundrobin
        server albert 192.168.232.129:5672 check inter 5s rise 2 fall 3
        server cecily 192.168.232.130:5672 check inter 5s rise 2 fall 3
    ######

    重新启动haproxy

    systemctl restart haproxy.service

    上述操作成功之后,就可以访问haproxy机器的8600端口进入rabbitmq集群管理界面,8660端口通讯。

  • 相关阅读:
    编程之美-2.18 数组分割
    话题模型
    暂时跳过的Leetcode题目
    LDA主题模型
    二叉树非递归的统一实现
    取余和取模运算
    IDM非补丁破解方法
    两种建立堆的方法HeapInsert & Heapify
    非阻塞connect:Web客户程序
    非阻塞connect
  • 原文地址:https://www.cnblogs.com/oskyhg/p/8545379.html
Copyright © 2020-2023  润新知