IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> docker安装rabbitmq3.8.7到3.8.9版本 -> 正文阅读

[大数据]docker安装rabbitmq3.8.7到3.8.9版本

准备工作

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

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.8.9-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?rabbitmq:3.8.9-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?\
rabbitmq:3.8.9-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?\
rabbitmq:3.8.9-management

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

下面的几句可以不用了 已经过期了,
-e RABBITMQ_ERLANG_COOKIE='xxx_2020'? ? 参数已过期,需要修改erlang.cookie

机器分别配置并重启容器(erlang.cookie)

$?chmod 600 /home/rabbitmq/.erlang.cookie

$?vim /home/rabbitmq/.erlang.cookie

xxx_2020

绑定集群

将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

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

ui设置镜像模式

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

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

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

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

参数说明

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

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

Definition 定义参数:

ha-mode=all 或 exactly;

ha-sync-mode=automatic;

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

在cluster中任意节点启用策略,策略会自动同步到集群节点

1 rabbitmqctl set_policy-p/ha-all"^"'{"ha-mode":"all"}'

这行命令在vhost名称为hrsystem创建了一个策略,策略名称为ha-allqueue,策略模式为 all 即复制到所有节点,包含新增节点,策略正则表达式为 “^” 表示所有匹配所有队列名称。例如:

1 rabbitmqctl set_policy-p/ha-all"^message"'{"ha-mode":"all"}'

注意:“^message” 这个规则要根据自己修改,这个是指同步“message”开头的队列名称,我们配置时使用的应用于所有队列,所以表达式为“^”
?

命令设置镜像模式

在任意一个节点上执行:

1 root@live-mq-01:~# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。

我们去live-mq-02上查看策略。

root@live-mq-02:~# rabbitmqctl list_policies
Listing policies...
/ha-allall^{"ha-mode":"all"}0
...done.

此时镜像集群就已经完成了,可以在任意节点上创建队列,看看其他两个节点是否会同步。

mq添加管理员账号访问ui

rabbitmqctl add_user test 123456
rabbitmqctl set_user_tags test administrator

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-18 12:46:21  更:2021-08-18 12:48:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:28:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码