zoukankan      html  css  js  c++  java
  • Rabbitmq在ubuntu1804系统上的部署

    一:单机部署RabbitMQ服务

      1:服务器的配置,主要修改本地的地址解析和唯一的主机名,见下图

        

        唯一主机名,如下

        

       2:开始安装RabbitMQ服务器,具体的安装步骤可以见官网,连接如下   

    https://www.rabbitmq.com/install-debian.html
    

        官网安装步骤明细如下: 

    #!/bin/sh
    
    ## If sudo is not available on the system,
    ## uncomment the line below to install it
    # apt-get install -y sudo
    
    sudo apt-get update -y
    
    ## Install prerequisites
    sudo apt-get install curl gnupg -y
    
    ## Install RabbitMQ signing key
    curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo apt-key add -
    
    ## Install apt HTTPS transport
    sudo apt-get install apt-transport-https
    
    ## Add Bintray repositories that provision latest RabbitMQ and Erlang 23.x releases
    sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list <<EOF
    ## Installs the latest Erlang 23.x release.
    ## Change component to "erlang-22.x" to install the latest 22.x version.
    ## "bionic" as distribution name should work for any later Ubuntu or Debian release.
    ## See the release to distribution mapping table in RabbitMQ doc guides to learn more.
    deb https://dl.bintray.com/rabbitmq-erlang/debian bionic erlang
    ## Installs latest RabbitMQ release
    deb https://dl.bintray.com/rabbitmq/debian bionic main
    EOF
    
    ## Update package indices
    sudo apt-get update -y
    
    ## Install rabbitmq-server and its dependencies
    sudo apt-get install rabbitmq-server -y --fix-missing
    

      通过上述步骤,即可安装好RabbitMQ服务

      3:启动RabbitMQ服务,并设置开机服务,如下

    root@mq-server1:~# systemctl    start    rabbitmq-server
    
    root@mq-server1:~# systemctl    enable rabbitmq-server
    

      

      4:开启web界面管理插件,见下图

        

         5:登录web管理界面,见下图,在默认的情况下,禁止使用guest账户登录,具体报错见下图

        

        解除禁制登录,只需要在配置文件中修改信息如下:

    root@mq-server1:~# vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.22/ebin/rabbit.app    
    {loopback_users, []},   #删除被禁止登陆的guest账户
    
    
    #重启rabbitmq服务
    root@mq-server1:~#systemctl restart rabbitmq-server.service
    

      

        

      6:重启服务,并在web界面登录,见下图

          

       根据上图可知,RabbitMQ服务安装成功

     二:RabbitMQ配置集群

      Rabbitmq集群分为二种方式:

          普通模式:创建好RabbitMQ之后的默认模式。

          镜像模式:把需要的队列做成镜像队列。  

      环境准备:有三台服务器,分别都安装好RabbitMQ服务

      三台服务器IP:

    192.168.37.16
    192.168.37.17
    192.168.37.18

      三台服务器MQ服务器配置本地主机名解析:

    192.168.37.16 mq-server1 mq-server1.fairies.net
    192.168.37.16 mq-server2 mq-server2.fairies.net
    192.168.37.16 mq-server3 mq-server3.fairies.net
    

      1:Rabbitmq服务的安装见单机部署

      2:三台服务器分别启动Rabbitmq,并设置开机启动,如下

      

    root@mq-server1:~# systemctl start rabbitmq-server
    root@mq-server1:~# systemctl enable rabbitmq-server
    Synchronizing state of rabbitmq-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install enable rabbitmq-server
    
    
    
    root@mq-server2:~# systemctl start rabbitmq-server
    root@mq-server2:~# systemctl enable rabbitmq-server
    Synchronizing state of rabbitmq-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install enable rabbitmq-server
    
    
    root@mq-server3:~# systemctl start rabbitmq-server
    root@mq-server3:~# systemctl enable rabbitmq-server
    Synchronizing state of rabbitmq-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install enable rabbitmq-server
    

      

      3:创建Rabbitmq集群,

        Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的集群环境,而Erlang的集群中各节点是通过一个magic cookie来实现的,这个cookie存放在/var/lib/rabbitmq/.erlang.cookie 中,文件是400的权限,所以必须保证各节点cookie保持一 致,否则节点之间就无法通信。
        由于集群有三台服务器,所以只需要把其中一台服务里的cookie文件拷贝到其他另外两台机器里即可,
        拷贝的过程中,必须要把RabbitMQ服务关闭,下图以主机16的文件拷贝到主机17,18机器上为例
        
    主机2
    
    root@mq-server2:~# rabbitmqctl stop_app
    Stopping rabbit application on node rabbit@mq-server2 ...
    
    
    
    主机3:
    root@mq-server2:~# rabbitmqctl stop_app
    Stopping rabbit application on node rabbit@mq-server2 ...
    

      

       文件的拷贝

       

      分别启动17,18两台机器的RabbitMQ服务,如下

      

     4:创建集群,并把两外两台主机添加到另外一台机器里,

      在mq-server2作为内存节点连接起来,并作为内存节点,在mq-server2执行以下命令,见下图

      

    在mq-server3作为内存节点连接起来,并作为内存节点,在mq-server3执行以下命令,见下图

      

      集群添加好后,重启服务,见下图

        

    5:登录web界面进行验证,如下图

      

        在192.168.37.18机器上发现有三台设备的节点信息,说明集群添加成功,但是上图配置的集群只是普通的集群,只要一台机器宕机或者RabbitMQ服务停机,数据就会丢失,下面介绍怎么配置镜像模式集群

    6:配置镜像模式集群

      三台机器,只要在任何一台机器上执行以下命令,就把模式设置城镜像模式,如下图

        

    6:1:对镜像模式进行验证,在三台机器的任何一台上添加账户,另外两台都可以查看,说明设置成功,以下以192.168.37.18主机添加账户为例,见下图

      

        

      

      根据上图步骤,创建并查看用户,创建yangjie用户成功

      在16,17机器上验证,见下图

      

        

          由以上可知,RabbitMQ服务集群搭建成功!

  • 相关阅读:
    Unity 之 中文乱码
    fork调用的底层实现
    Linux错误代码含义
    VMware 获取该虚拟机的所有权失败
    Qt ------ QAction
    C++ ------ const迭代器 和 const_iterator的区别
    IAR ------- 在线调试技巧
    STM32 ------ HardFault_Hander 中断函数
    从一张表中复制数据到另一张表中
    分布式任务调度平台xxl-job
  • 原文地址:https://www.cnblogs.com/molson/p/13610806.html
Copyright © 2011-2022 走看看