zoukankan      html  css  js  c++  java
  • 安装RabbitMQ Cluster 集群

     RabbitMQ是一套开源的消息队列服务软件,由erlang 写成,主要特点:可伸缩性,消息持久化.

    从内存持久化到磁盘,在从硬盘加载到内存,更多信息自行百度了解

    --------------------------------------------------------------------------------------------------------------------------------

    下面开始进入rabbitmq安装:

    三个节点环境:centos7.2虚拟机

    1、每个节点都安装erlang rabbitmq-server

    #yum install erlang rabbitmq-server -y

    1. 每个节点都启动rabbitmq及设置开机启动

    #systemctl enable rabbitmq-server.service

    #systemctl status  rabbitmq-server.service

    #systemctl list-unit-files | grep rabbitmq-server.service

     

    1. 创建openstack 用户 , 注意将password 替换为自己的合适密码

    # rabbitmqctl add_user openstack teamsun

     

    5,将openstack用户赋予权限

    #rabbitmqctl set_permissions openstack ".*" ".*" ".*"

    6,看下监听端口,rabbitmq用的是5672端口

    # netstat -ntlp | grep 5672

    7,查看rabbitmq插件

    #/usr/lib/rabbitmq/bin/rabbitmq-plugins list

     

    8,每个节点都打开rabbitmq相关插件

    #/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management mochiweb webmachine rabbitmq_web_dispatch amqp_client rabbitmq_management_agent

    打开插件后,重启下rabbitmq服务

    #systemctl restart rabbitmq-server.service

    浏览器输入:http://ip:5672 默认用户名密码:guest/guest 通过这个界面能很直观地看到rabitmq的运行和负载情况

    当然你也可以不用guest登录,然后自己创建一个用户,例如xxxxxxx

    以下是创建一个mqadmin的用户

    #rabbitmqctl add_user mqadmin mqadmin

    # rabbitmqctl set_user_tags mqadmin administrator

    #rabbitmqctl set_permissions -p / mqadmin ".*" ".*" ".*"

    通过命令更换密码,比如把guest的密码换成password

    #rabbitmqctl change_password guest password

    9,查看rabbitmq的状态

    #rabbitmqctl status

    10,集群配置

    controller1上操作,把文件copy到其他两个节点

    #scp /var/lib/rabbitmq/.erlang.cookie root@controller2:/var/lib/rabbitmq/.erlang.cookie

    #scp /var/lib/rabbitmq/.erlang.cookie root@controller3:/var/lib/rabbitmq/.erlang.cookie

    controller2   controller3 上操作

    #systemctl restart rabbitmq-server.service

    #systemctl status rabbitmq-server.service

    #rabbitmqctl stop_app

    #rabbitmqctl join_cluster --ram rabbit@controller1

    rabbitmq 集群里面有两种模式RAM内存 和DISK 磁盘 ,就是消息队里存在内存里和存在硬盘上,集群里面必须要有一个disk模式)

     #rabbitmqctl start_app

    查看集群状态:

    查看集群状态

    #rabbitmqctl cluster_status

     

    界面查看:

     

    11,下面是关于RabbitMQ的一些优化

    RabbitMQ集群优化:

       1)尽可能的把rabbitmq部署在单独的服务器中,这样让rabbitmq 服务享用全部的CPU资源。

    (2)开启HIPE模式,开启hipe模式让erlang 预编译运行,能够提高20%-30%,网上有相关的测试结果可参考:http://github.com/binarin/rabbit-simple-benchmark/blob/master/report.md/

    #vi /etc/rabbitmq/rabbitmq.config    打开hipe 选项    三个节点均修改:

     

    重启服务,注意重启时间会很长

    #systemctl restart rabbitmq-server.service

    (3)不要使用队列镜像

    使用队列镜像会是集群消息吞吐量下降两倍,RPC消息生命周期变短,有可能消息丢失,导致某些正在进行的操作失败

     

    4)控制发送的指标数量和频率,减少不必要的消息在rabbitmq服务中堆积,这样让rabbitmq服务有更多的资源来处理重要的openstack服务队列

    以下是三篇参考文档,有时间和兴趣可以去深入研究

    https://www.mirantis.com/blog/best-practices-rabbitmq-openstack/

     

     

     https://www.qcloud.com/community/article/135

     

    http://www.rabbitmq.com/documentation.html

  • 相关阅读:
    (3.4)常用知识-char与varchar的选择
    (3.3)常用知识-索引使用、维护与填充因子
    (3.2)常用知识-字符串处理
    (3.1)常用知识-日期处理
    基于Sql Server 2008的分布式数据库的实践
    将expression转化为数据类型int时发生算术溢出错误
    webserver and application server
    web前端
    linkin
    jquery load
  • 原文地址:https://www.cnblogs.com/lxqr/p/8694737.html
Copyright © 2011-2022 走看看