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);

     
  • 相关阅读:
    jmeter中webdriver插件,进行自动化压测
    JMeter对Selenium自动化代码进行压测
    自动化构建jenkins配置
    jmeter压测app
    apk反编译
    eclipse下:selenium+python自动化之Chrome driver
    selenium+eclipse+python环境
    Eclipse 打开时“发现了以元素'd:skin'”开头的无效内容。此处不应含有子元素(转)
    appium系列教程(转载)
    SDK Manager.exe 无法启动,一闪而过的解决办法
  • 原文地址:https://www.cnblogs.com/zyrs/p/13653182.html
Copyright © 2011-2022 走看看