docker部署RabbitMQ集群
标签: java IntelliJ IDEA Shell
原创内容,纯手敲,转载请写明出处~
公司开发用rabbitmq,要部署集群,在此做个笔记
首先安装docker,并安装portainer,这里不介绍,有需要可以留言,我来补齐安装docker及portainer可视化工具的步骤
安装rabbitmq 我用的是 rabbitmq:3-management
docker pull rabbitmq:3-management
下载好后,进入portainer可视化工具页面

创建rabbitmq配置文件
config内容如下
[
{ rabbit, [
{cluster_nodes, {[ 'rabbit1@rabbit1' ], disc}},
{tcp_listen_options, [binary, {backlog, 1024}, {nodelay, true}, {keepalive, true} ]},
{vm_memory_high_watermark, 0.6},
{ loopback_users, [ ] },
{ tcp_listeners, [ 5672 ] },
{ ssl_listeners, [ ] },
{ default_pass, <<"password">> },
{ default_user, <<"admin">> },
{ hipe_compile, false }
] },
{ rabbitmq_management, [ { listener, [
{ port, 15672 },
{ ssl, false }
] },
{load_definitions, "/etc/rabbitmq/definitions.json"}
] }
].
json内容如下
{
"rabbit_version":"3.6.3",
"users": [
{
"name":"guest",
"password_hash":"fd0GyzAf6C6hmgCJ5VU+TSyzUNlzypPlGb7VDKkqUvJqVxyd",
"hashing_algorithm":"rabbit_password_hashing_sha256",
"tags":"administrator"
}
],
"vhosts": [
{
"name":"/"
}
],
"permissions":[
{
"user":"guest",
"vhost":"/",
"configure":".*",
"write":".*",
"read":".*"
}
],
"parameters":[],
"policies":[
{"vhost":"/","name":"ha","pattern":"", "definition":{"ha-mode":"all","ha-sync-mode":"automatic","ha-sync-batch-size":5}}
],
"queues":[
{
"name":"q.user.created",
"vhost":"/",
"durable":true,
"auto_delete":true,
"arguments":{}
}
],
"exchanges":[
{
"name":"e.user.created",
"vhost":"/",
"type":"topic",
"durable":true,
"auto_delete":false,
"internal":false,
"arguments":{}
}
],
"bindings":[
{
"source":"e.user.created",
"vhost":"/",
"destination":"q.user.created",
"destination_type":"queue",
"routing_key":"user.created",
"arguments":{}
}
]
}
配置完毕,添加一个stack

stack名称自己定义,配置如下:
version: "3.3"
services:
rabbit1:
image: rabbitmq:3-management
hostname: rabbit1
environment:
RABBITMQ_ERLANG_COOKIE: "secret string"
RABBITMQ_NODENAME: rabbit1
configs:
- source: rabbitmq_rabbitmq.config
target: /etc/rabbitmq/rabbitmq.config
- source: rabbitmq_definitions.json
target: /etc/rabbitmq/definitions.json
ports:
- "4369:4369"
- "5671:5671"
- "5672:5672"
- "15671:15671"
- "15672:15672"
- "25672:25672"
rabbit2:
image: rabbitmq:3-management
hostname: rabbit2
depends_on:
- rabbit1
environment:
RABBITMQ_ERLANG_COOKIE: "secret string"
RABBITMQ_NODENAME: rabbit2
configs:
- source: rabbitmq_rabbitmq.config
target: /etc/rabbitmq/rabbitmq.config
- source: rabbitmq_definitions.json
target: /etc/rabbitmq/definitions.json
rabbit3:
image: rabbitmq:3-management
hostname: rabbit3
depends_on:
- rabbit1
environment:
RABBITMQ_ERLANG_COOKIE: "secret string"
RABBITMQ_NODENAME: rabbit3
configs:
- source: rabbitmq_rabbitmq.config
target: /etc/rabbitmq/rabbitmq.config
- source: rabbitmq_definitions.json
target: /etc/rabbitmq/definitions.json
configs:
rabbitmq_rabbitmq.config:
external: true
rabbitmq_definitions.json:
external: true
点击update the stack

到此docker部署rabbitmq集群完毕。
想要具体了解配置文件属性,请自行百度
智能推荐
Mybatis基础(part 1)
一.mybatis调用SQL语句 1.使用XML配置SQL语句 在SqlMapConfig.xml配置数据源并指定映射配置文件的位置(每个DAO对应的XML文件,该文件映射了DAO的全限定类名) 2.使用注解配置sql语句 在SqlMapConfig.xml配置数据源和class属性(指定被注解的dao全限定类名),在DAO上写注解。 用注解来配置,故此处使用class属性指定被注解...
Docker 容器内运行 Dubbo 服务
原文:http://www.aqcoder.com/post/content?id=41 在使用 Docker 容器内运行 Dubbo 服务的时候一个令人很头痛的问题就是服务地址注册。 Docker 容器内有自己的 IP 段,和宿主主机是隔离的,Dubbo 会使用容器内的 IP 注册到 zookeeper 注册中心上。这样其他的服务是无法访问的。 方式一:–host 一个很直接的方案就...
python基础教程
Python基础教程 一、简介 1.1 python语言介绍 python的创始人:Guido Van Rossum Python下载地址:https://www.python.org/ Python文档下载地址:https://www.python.org/doc/ Pycharm下载地址:https://www.runoob.com/w3cnote/pycharm-windows-instal...
1、Git安装与配置
1、Git安装与配置 一:版本控制 定义:版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 为什么要用版本控制:在起初的项目开发中,我们会不断的编写代码,但是,害怕有一天系统突然挂掉了,完蛋,辛苦写的代码就这么没了,所有为了防止这一点,都会开发一点就以目录拷贝的形式保存下来,自己这么1.0、2.0、3.0…的这么去标记,开始的还好,后面的话你压根就不知道...
Golang net/rpc 包的深度解读和学习
Golang 提供了一个开箱即用的RPC服务,实现方式简约而不简单。本文对net/rpc 包做深度解读和学习实战。 RPC 简单介绍 远程过程调用 (Remote Procedure Call,RPC) 是一种计算机通信协议。允许运行在一台计算机的程序调用另一个地址空间的子程序(一般是开放网络中的一台计算机),而程序员就像调用调用本地程序一样,无需额外做交互编程。RPC 是一种 CS (Clien...
猜你喜欢
merge sort
归并排序(merge sort) 具体算法: I.对原数组进行分组:对数组进行遍历,每检测出一个有序序列则记录一个分组,一般分组都是上升序列,下降序列也会被转换成上升序列 II.对两两相邻的分组进行合并,合并后的分组也将被记录 III.迭代合并之前合并后的分组直到出现最后的一个有序的大分组,也就是排序的最终结果 java.util.DualPivotQuicksort类中的static void ...
Java函数的学习
java学习 百知教育学习 - 胡鑫喆 - Java函数的学习 01_函数的定义 函数的定义 概念:实现特定功能的一段代码,可反复使用 定义语法: 函数名称许遵循命名规范 函数定义在类的内部,与main函数并列,并且使函数产生作用,需进行函数的调用 使用函数去掉冗余代码 02_函数的参数 函数的参数(函数名称() 其中()就是一个参数表) 无参函数(01_函数的定义中的下划线就为无参函数) 有参函...
03-段寄存器属性探测
1.段属性探测 要点回顾: 要点回顾: 上一节课我们讲过段寄存器有96位: 我们可以通过MOV指令进行读写(LDTR和TR除外) 但我们只能看见16位,那如果证明Attribute、Base、Limit的存在呢? 1、段寄存器成员简介 2、探测Attribute 3、探测Base 3、探测Limit 课后练习:...
解决swagger返回map复杂结构不能解析 Resolver error at definitions
解决: 没错,重点就是加上alternateTypeRules进行解析。 关注公众号获取更多内容,有问题也可在公众号提问哦: 强哥叨逼叨 叨逼叨编程、互联网的见解和新鲜事...
Android 插件化实现中遇错: PackageParser$PackageParserException: Failed to parse xxx
本文解决以下两个问题 一、在尝试使用apk本地路径获取packageInfo时,报出: 二、使用newInstance()时,报出: 解决问题 1. 第一个错误确实没找到原因,只在模拟器会出现,真机没有任何问题 在使用apk本地路径获取packageInfo时, 也就是调用这样一个api, 假设我本地apk存储的路径为: /storage/emulated/0/a.apk 返回给我的package...
