zoukankan      html  css  js  c++  java
  • CentOS-Docker安装RabbitMQ集群(rabbitmq:3.7.16-management)

    准备工作

    1.机器资源(分别安装docker环境)

    建议机器配置: centos7.x 4G及以上 100GB及以上 2核及以上

    192.168.1.101
    192.168.1.102
    192.168.1.103

    2.分别配置hosts文件,追加
    vim /home/rabbitmq/hosts

    192.168.1.101 rabbit1 rabbit1
    192.168.1.102 rabbit2 rabbit2
    192.168.1.103 rabbit3 rabbit3

    下载镜像(每台机器)

    $ docker pull rabbitmq:3.7.16-management

    创建目录 (每台机器)

    mkdir -p /home/rabbitmq

     

    运行镜像(每台机器)

    创建容器(rabbit1)

    docker run --restart=unless-stopped -h rabbit1 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit1 
    -v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts 
    -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 -e RABBITMQ_ERLANG_COOKIE='xxx_2019' rabbitmq:3.7.16-management

    创建容器(rabbit2)

    docker run --restart=unless-stopped -h rabbit2 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit2 
    -v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts 
    -e RABBITMQ_ERLANG_COOKIE='xxx_2019' rabbitmq:3.7.16-management

    创建容器(rabbit3)

    docker run --restart=unless-stopped -h rabbit3 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit3 
    -v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts 
    -e RABBITMQ_ERLANG_COOKIE='xxx_2019' rabbitmq:3.7.16-management

    参数说明
    #容器后台运行
    -d
    #容器的主机名为 rabbit_master,容器内部的hostname
    --hostname rabbit_master
    #将宿主机目录/home/rabbitmq挂载到容器的/var/lib/rabbitmq目录。z是一个标记,在selinux环境下使用。
    -v /home/rabbitmq:/var/lib/rabbitmq:z
    #设置rabbitmq的cookie可以自定义为其他文本,三个容器保持一致即可。
    -e RABBITMQ_ERLANG_COOKIE='xxx_2019'

    绑定集群

    将myrabbit1节点重置

    docker exec -it myrabbit1 bash

    rabbitmqctl stop_app &&
    rabbitmqctl reset &&
    rabbitmqctl start_app

    将myrabbit2节点加入集群

    docker exec -it myrabbit2 bash

    rabbitmqctl stop_app &&
    rabbitmqctl reset &&
    rabbitmqctl join_cluster rabbit
    @rabbit1 &&
    rabbitmqctl start_app

    将myrabbit3节点加入集群

    docker exec -it myrabbit3 bash

    rabbitmqctl stop_app &&
    rabbitmqctl reset &&
    rabbitmqctl join_cluster rabbit
    @rabbit2 &&
    rabbitmqctl start_app

    查询集群状态

    rabbitmqctl cluster_status

    故障节点的处理

    docker exec -it rabbit2 /bin/bash

    rabbitmqctl stop_app

    #在一个正常的节点上移除有问题的节点

    docker exec -it rabbit1 /bin/bash

    rabbitmqctl forget_cluster_node rabbit@rabbit2

     

    使用说明

    springboot集成

    spring.rabbitmq.addresses=192.168.1.101:5672,192.168.1.102:5672,192.168.1.103:5672
    spring.rabbitmq.username=admin
    spring.rabbitmq.password=123456
    spring.rabbitmq.virtual-host=/

    #支持手动ack模式
    spring.rabbitmq.listener.simple.acknowledge-mode=manual
    #每个并发的预取条数
    spring.rabbitmq.listener.simple.prefetch=10
    #并发数
    spring.rabbitmq.listener.simple.concurrency=3
    #最大并发数
    spring.rabbitmq.listener.simple.max-concurrency=10
    spring.rabbitmq.listener.direct.acknowledge-mode=manual

    队列模式分为普通模式和镜像模式,集群模式建议直接使用镜像队列

    1.全部节点镜像策略创建

    2.指定节点数镜像策略创建

    参数说明

    Pattern 模式:"^"为全部;"^all-"为所有all-开头

    Priority 优先级:建议10,比较耗费资源

    Definition 定义参数:

    ha-mode=all 或 exactly;

    ha-sync-mode=automatic;

    ha-params=2(ha-mode=exactly);

     
  • 相关阅读:
    Designing IP-Based Video Conferencing Systems: Dealing with Lip Synchronization(唇音同步)
    ffmpeg 如何音视频同步
    音视频同步(播放)原理
    您的 PHP 似乎没有安装运行 WordPress 所必需的 MySQL 扩展”处理方法
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statemen
    获得H.264视频分辨率的方法
    1080P、720P、4CIF、CIF所需要的理论带宽
    linux mysql 操作命令
    RTP/RTCP的时间同步机制
  • 原文地址:https://www.cnblogs.com/zyrs/p/13653182.html
Copyright © 2011-2022 走看看