• rabbitmq-3.8.15集群、集群镜像模式安装部署


    目录

    一、环境

    1、映射、域名、三墙

    2、Erlang和socat安装(三台服务器都实行)

    二、部署三台rabbitmq-3.8.15实例

    1、rabbitmq官网下载地址 : 

    2、解压rabbitmq

    3、添加系统变量

    4、启动web插件、启动rabbitmq

    5、在rabbitmq1上添加用户

    三、部署集群

    1、向2和3分发.erlang.cookie

     2、rabbitmq2加入rabbitmq1节点

    3、rabbitmq3同理,查看节点状态

    三、设置为镜像模式


    一、环境

    1、映射、域名、三墙

    1. [root@rabbitmq1 ~]# vim /etc/hosts
    2. 192.168.6.83 rabbitmq1
    3. 192.168.6.84 rabbitmq2
    4. 192.168.6.85 rabbitmq3
    5. [root@rabbitmq1 ~]# hostnamectl set-hostname rabbitmq1
    6. [root@rabbitmq1 ~]# bash
    7. [root@rabbitmq2 ~]# hostnamectl set-hostname rabbitmq2
    8. [root@rabbitmq2 ~]# bash
    9. [root@rabbitmq3 ~]# hostnamectl set-hostname rabbitmq3
    10. [root@rabbitmq3 ~]# bash
    11. [root@rabbitmq1 ~]# systemctl stop firewalld
    12. [root@rabbitmq1 ~]# setenforce 0
    13. [root@rabbitmq1 ~]# iptables -F

    2、Erlang和socat安装
    (三台服务器都实行)

    1. #Erlang安装
    2. #Erlang环境
    3. [root@rabbitmq1 ~]# yum -y install make gcc gcc-c++ build-essential openssl openssl-devel unixODBC unixODBC-devel kernel-devel m4 ncurses-devel
    4. [root@rabbitmq1 ~]# curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
    5. [root@rabbitmq1 ~]# sudo yum -y install erlang-22.3.4.19-1.el7.x86_64
    6. [root@rabbitmq1 ~]# yum -y install socat

    二、部署三台rabbitmq-3.8.15实例

    1、rabbitmq官网下载地址 : 

    Downloading and Installing RabbitMQ — RabbitMQicon-default.png?t=N7T8http://www.rabbitmq.com/download.html

    获取 rabbitmq-server-generic-unix-3.8.15.tar并拉取到每台服务器

    2、解压rabbitmq

    1. [root@rabbitmq2 ~]# xz -d rabbitmq-server-generic-unix-3.8.15.tar.xz
    2. [root@rabbitmq2 ~]# tar xvf rabbitmq-server-generic-unix-3.8.15.tar
    3. [root@rabbitmq2 ~]# mv rabbitmq_server-3.8.15/ /usr/local/rabbitmq

    3、添加系统变量

    1. #打开环境变量文件
    2. [root@rabbitmq2 ~]# vim /etc/profile
    3. #添加erlang rabbitmq 到环境变量
    4. export PATH=$PATH:/usr/local/erlang/bin
    5. export PATH=$PATH:/usr/local/rabbitmq/sbin
    6. #重新加载环境变量
    7. [root@rabbitmq2 ~]# source /etc/profile

    4、启动web插件、启动rabbitmq

    1. #启动web插件 便于访问
    2. [root@rabbitmq2 ~]# rabbitmq-plugins enable rabbitmq_management
    3. #启动rabbitmq服务
    4. [root@rabbitmq2 ~]# rabbitmq-server

    5、在rabbitmq1上添加用户

    1. #添加用户 admin 密码为 123456
    2. rabbitmqctl add_user admin 123456
    3. #将admin 设置为管理员权限
    4. rabbitmqctl set_user_tags admin administrator
    5. #将admin 设置为远端登录
    6. rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

    使用 admin 密码 123456 进行登录 

    三、部署集群

    1、向2和3分发.erlang.cookie

    1. [root@rabbitmq1 ~]# scp .erlang.cookie 192.168.6.84:/root
    2. [root@rabbitmq1 ~]# scp .erlang.cookie 192.168.6.85:/root

     2、rabbitmq2加入rabbitmq1节点

    需要强调一下,集群中至少有一个节点是磁盘节点用于数据持久化,然后剩下的节点都设置为内存节点以提高性能。

    这里将 rabbitmq2 添加到集群当中,并成为内存节点,不加–ram 默认是磁盘节点

    rabbitmq1默认为磁盘节点

    1. [root@rabbitmq2 ~]# rabbitmqctl stop_app
    2. Stopping rabbit application on node rabbit@rabbitmq2 ...
    3. [root@rabbitmq2 ~]# rabbitmqctl reset
    4. Resetting node rabbit@rabbitmq2 ...
    5. [root@rabbitmq2 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq1
    6. Clustering node rabbit@rabbitmq2 with rabbit@rabbitmq1
    7. [root@rabbitmq2 ~]# rabbitmqctl start_app
    8. Starting node rabbit@rabbitmq2 ...

    3、rabbitmq3同理,查看节点状态

    1. [root@rabbitmq1 ~]# rabbitmqctl cluster_status
    2. Cluster status of node rabbit@rabbitmq1 ...
    3. Basics
    4. Cluster name: rabbit@rabbitmq1
    5. Disk Nodes
    6. rabbit@rabbitmq1
    7. RAM Nodes
    8. rabbit@rabbitmq2
    9. rabbit@rabbitmq3
    10. Running Nodes
    11. rabbit@rabbitmq1
    12. rabbit@rabbitmq2
    13. rabbit@rabbitmq3
    14. Versions
    15. Node: rabbit@rabbitmq1, status: not under maintenance
    16. Node: rabbit@rabbitmq2, status: not under maintenance
    17. Node: rabbit@rabbitmq3, status: not under maintenance
    18. Maintenance status
    19. Node: rabbit@rabbitmq1, status: not under maintenance
    20. Node: rabbit@rabbitmq2, status: not under maintenance
    21. Node: rabbit@rabbitmq3, status: unknown

    三、设置为镜像模式

    1. [root@rabbitmq1 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
    2. Setting policy "ha-all" for pattern "^" to "{"ha-mode":"all"}" with priority "0" for vhost "/" ...

     验证

    1. [root@rabbitmq1 ~]# rabbitmqctl cluster_status
    2. Cluster status of node rabbit@rabbitmq1 ...
    3. Basics
    4. Cluster name: rabbit@rabbitmq1
    5. Disk Nodes
    6. rabbit@rabbitmq1
    7. RAM Nodes
    8. rabbit@rabbitmq2
    9. rabbit@rabbitmq3
    10. Running Nodes
    11. rabbit@rabbitmq1
    12. rabbit@rabbitmq2
    13. rabbit@rabbitmq3
    14. Versions
    15. rabbit@rabbitmq1: RabbitMQ 3.8.15 on Erlang 22.3.4.19
    16. rabbit@rabbitmq2: RabbitMQ 3.8.15 on Erlang 22.3.4.19
    17. rabbit@rabbitmq3: RabbitMQ 3.8.15 on Erlang 22.3.4.19
    18. Maintenance status
    19. Node: rabbit@rabbitmq1, status: not under maintenance
    20. Node: rabbit@rabbitmq2, status: not under maintenance
    21. Node: rabbit@rabbitmq3, status: not under maintenance
    22. Alarms
    23. (none)
    24. Network Partitions
    25. (none)
    26. Listeners
    27. Node: rabbit@rabbitmq1, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
    28. Node: rabbit@rabbitmq1, interface: [::], port: 15672, protocol: http, purpose: HTTP API
    29. Node: rabbit@rabbitmq1, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
    30. Node: rabbit@rabbitmq2, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
    31. Node: rabbit@rabbitmq2, interface: [::], port: 15672, protocol: http, purpose: HTTP API
    32. Node: rabbit@rabbitmq2, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
    33. Node: rabbit@rabbitmq3, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
    34. Node: rabbit@rabbitmq3, interface: [::], port: 15672, protocol: http, purpose: HTTP API
    35. Node: rabbit@rabbitmq3, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
    36. (none)
    37. Network Partitions
    38. (none)
    39. Listeners
    40. Node: rabbit@rabbitmq1, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
    41. Node: rabbit@rabbitmq1, interface: [::], port: 15672, protocol: http, purpose: HTTP API
    42. Node: rabbit@rabbitmq1, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
    43. Node: rabbit@rabbitmq2, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
    44. Node: rabbit@rabbitmq2, interface: [::], port: 15672, protocol: http, purpose: HTTP API
    45. Node: rabbit@rabbitmq2, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0

  • 相关阅读:
    JS返回NodeList和HTMLCollection详解
    Django ORM 多表操作
    git同步其他分支方法
    探索 Wall-E 的寻路算法
    ClickHouse进阶(二十二):clickhouse管理与运维-服务监控
    多数据源切换
    基于JAVA(Springboot框架)心理测评系统设计与实现 毕业设计开题报告
    整理mongodb文档:搭建分片集群
    【JAVA并发】AQS原理详解
    核货宝:服装店收银系统必备的五大功能
  • 原文地址:https://blog.csdn.net/youcan_doit/article/details/134013694