RabbitMQ原理介绍(一)

RabbitMQ安装使用(二)

RabbitMQ添加新用户并支持远程访问(三)

RabbitMQ管理命令rabbitmqctl详解(四)

RabbitMQ两种集群模式配置管理(五)

RabbitMQ应用实例Python版-Hello World

RabbitMQ应用实例Python版-工作队列

RabbitMQ应用实例Python版-消息确认和消息持久化

RabbitMQ应用实例Python版-发布/订阅

RabbitMQ应用实例Python版-路由

Docker搭建RabbitMQ(单机版)

采用bijukunjummen提供的镜像。

 
1
$ git clone https://github.com/bijukunjummen/docker-rabbitmq-cluster.git

启动集群,别忘记安装docker daemon和docker-compose

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ cd docker-rabbitmq-cluster/cluster
$ docker-compose up -d
Pulling rabbit1 (bijukunjummen/rabbitmq-server:latest)...
latest: Pulling from bijukunjummen/rabbitmq-server
8d30e94188e7: Pull complete
4dcc5ee4075c: Pull complete
9554738b08fc: Pull complete
efdc65d45fa8: Pull complete
8511de892111: Pull complete
370e6c0ab215: Pull complete
940500e823fe: Pull complete
b6134aab1a2a: Pull complete
b870c2ab7ca0: Pull complete
56ed51d99ae0: Pull complete
adec15369e34: Pull complete
1f44e442c116: Pull complete
0dcd19841c9f: Pull complete
24b8906417b0: Pull complete
Digest: sha256:a6bbb268de87d09d538152450b77835a27693039ab079785a7b72f595bef18a6
Status: Downloaded newer image for bijukunjummen/rabbitmq-server:latest
Creating cluster_rabbit1_1
Creating cluster_rabbit2_1
Creating cluster_rabbit3_1

默认启动了三个节点

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
rabbit1:
  image: bijukunjummen/rabbitmq-server
  hostname: rabbit1
  ports:
    - "5672:5672"
    - "15672:15672"
 
rabbit2:
  image: bijukunjummen/rabbitmq-server
  hostname: rabbit2
  links:
    - rabbit1
  environment:
   - CLUSTERED=true
   - CLUSTER_WITH=rabbit1
   - RAM_NODE=true
  ports:
      - "5673:5672"
      - "15673:15672"
 
rabbit3:
  image: bijukunjummen/rabbitmq-server
  hostname: rabbit3
  links:
    - rabbit1
    - rabbit2
  environment:
   - CLUSTERED=true
   - CLUSTER_WITH=rabbit1
  ports:
        - "5674:5672"

查看容器

 
1
2
3
4
5
$ docker ps
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                                                                                  NAMES
ba5f665bb213        bijukunjummen/rabbitmq-server   "/bin/sh -c /opt/rabb"   10 minutes ago      Up 10 minutes       4369/tcp, 9100-9105/tcp, 15672/tcp, 25672/tcp, 0.0.0.0:5674->5672/tcp                  cluster_rabbit3_1
b9466e206b2b        bijukunjummen/rabbitmq-server   "/bin/sh -c /opt/rabb"   10 minutes ago      Up 10 minutes       4369/tcp, 9100-9105/tcp, 25672/tcp, 0.0.0.0:5673->5672/tcp, 0.0.0.0:15673->15672/tcp   cluster_rabbit2_1
b733201aeadf        bijukunjummen/rabbitmq-server   "/bin/sh -c /opt/rabb"   10 minutes ago      Up 10 minutes       4369/tcp, 0.0.0.0:5672->5672/tcp, 9100-9105/tcp, 0.0.0.0:15672->15672/tcp, 25672/tcp   cluster_rabbit1_1                                                                                            daomonit

访问
http://192.168.99.100:15672,弹出登陆界面。输入guest/guest

然后就可以添加用户了。

Docker搭建RabbitMQ集群(多机版)

上面我们使用Docker搭建出了一个RabbitMQ单机集群,这种模式只能用来测试玩玩,无法再生产环境中使用。在生产环境中,需要把3个节点的集群分布到各个主机上面去。这个时候docker-compose就需要做调整了,主要是对外端口和link方式,首先我们说一下RabbitMQ开启后的对外端口。

SELinux和类似机制或许会通过绑定端口的方式阻止RabbitMQ。当这种情况发生时,RabbitMQ会启动失败。请确认以下的端口是可以被打开的:

4369 (epmd)

25672 (Erlang distribution)

5672, 5671 (启用了或者未启用TLS的AMQP 0-9-1)

15672 (如果管理插件被启用)

61613, 61614 (如果STOMP被启用)

1883, 8883 (如果MQTT被启用)

说完端口,下面提供一个三节点的docker-compose文件。

rabbit1(10.106.136.7)

 
1
2
3
4
5
6
7
8
9
10
11
12
rabbit1:
  image: bijukunjummen/rabbitmq-server
  hostname: rabbit1
  ports:
    - "5672:5672"
    - "4369:4369"
    - "1883:1883"
    - "15672:15672"
    - "25672:25672"
  environment:
    - RABBITMQ_DEFAULT_USER=myuser
    - RABBITMQ_DEFAULT_PASS=mypass

rabbit2(10.106.136.8)

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
rabbit2:
  image: bijukunjummen/rabbitmq-server
  hostname: rabbit2
  extra_hosts:
    - "rabbit1:10.106.136.7"
  environment:
   - CLUSTERED=true
   - CLUSTER_WITH=rabbit1
   - RAM_NODE=true
  ports:
      - "5672:5672"
      - "4369:4369"
      - "1883:1883"
      - "15672:15672"
      - "25672:25672"

rabbit3(10.106.136.9)

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
rabbit3:
  image: bijukunjummen/rabbitmq-server
  hostname: rabbit3
  extra_hosts:
    - "rabbit1:10.106.136.7"
    - "rabbit2:10.106.136.8"
  environment:
   - CLUSTERED=true
   - CLUSTER_WITH=rabbit1
   - RAM_NODE=true
  ports:
        - "5672:5672"
        - "4369:4369"
        - "1883:1883"
        - "15672:15672"
        - "25672:25672"

然后依序在三个节点上分别开启rabbitmq,然后随意找个节点打开IP:25672,输入guest用户名和guest密码就可以查看集群了。

Docker:搭建RabbitMQ集群的更多相关文章

  1. Docker搭建RabbitMQ集群

    Docker搭建RabbitMQ集群 Docker安装 见官网 RabbitMQ镜像下载及配置 见此博文 集群搭建 首先,我们需要启动运行RabbitMQ docker run -d --hostna ...

  2. 搭建RabbitMQ集群(Docker)

    前一篇搭建RabbitMQ集群(通用)只是把笔记直接移动过来了,因为我的机器硬盘已经满了,实在是开不了那么虚拟机. 还好,我的Linux中安装了Docker,这篇文章就简单介绍一下Docker中搭建R ...

  3. Docker 构建 RabbitMQ 集群

    刚开始,关于RabbitMQ集群的搭建,我找到了这篇文章:Docker 安装 RabbitMQ 集群 从而找到了第三方的RabbitMQ集群容器 rabbitmq-server 但是这个容器只有3.6 ...

  4. RabbitMQ系列(五)使用Docker部署RabbitMQ集群

    概述 本文重点介绍的Docker的使用,以及如何部署RabbitMQ集群,最基础的Docker安装,本文不做过多的描述,读者可以自行度娘. Windows10上Docker的安装 因为本人用的是Win ...

  5. Docker环境下的前后端分离项目部署与运维(八)使用Docker部署RabbitMQ集群

    下载RabbitMQ镜像 镜像地址RabbitMQ Docker官方认证镜像地址:https://hub.docker.com/_/rabbitmq 安装命令安装之前,切记把Docker Hub设置为 ...

  6. Docker 搭建 etcd 集群

    阅读目录: 主机安装 集群搭建 API 操作 API 说明和 etcdctl 命令说明 etcd 是 CoreOS 团队发起的一个开源项目(Go 语言,其实很多这类项目都是 Go 语言实现的,只能说很 ...

  7. Docker搭建PXC集群

    如何创建MySQL的PXC集群 下载PXC集群镜像文件 下载 docker pull percona/percona-xtradb-cluster 重命名 [root@hongshaorou ~]# ...

  8. docker搭建etcd集群环境

    其实关于集群网上说的方案已经很多了,尤其是官网,只是这里我个人只有一个虚拟机,在开发环境下建议用docker-compose来搭建etcd集群. 1.拉取etcd镜像 docker pull quay ...

  9. docker 搭建zookeeper集群和kafka集群

    docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之 ...

随机推荐

  1. 生产者消费者模式 php 【转】

    在工作中常常听到某某大牛之间的交谈会涉及到,xx消费者啊啥的,到底什么大牛之间讲的是什么? 这篇文章主要解决三个问题: 1.到底什么是生产者和消费者,以及它们之间的故事 2.它们之间靠什么交流 3.应 ...

  2. 《移山之道》Reading Task——by12061154Joy

    最近因为作业的原因所以接触到了这本书,给我最特别的感觉就是很新鲜,主要是因为这本书是以故事展开的,大概是我读的书太少,基本没有看到过专业书的知识体系是用故事串讲起来的,这样帮助读者理解了一些概念并且不 ...

  3. 12.24daily_scrum

    今天是平安夜,大家开心地度过一个平安夜的同时,也完成了很多软件的调试工作,我们争取在下周前完成本阶段的所有调试工作. 具体工作如下: 具体工作: 小组成员 今日任务 明日任务 工作时间 李睿琦 软件调 ...

  4. java计算器项目

    简单的java计算器项目   题目:java计算器项目 一. 题目简介: 一个能进行加减乘除四则运算的小程序 Github链接:https://github.com/lizhenbin/test/tr ...

  5. idea使用优化

    一.idea设置目录说明 1.bin目录包含我们的启动文件.虚拟机配置信息和idea属性信息等 2.help目录:帮助文档 3.jre64 : idea自带的jre环境 4.lib:idea所依赖的类 ...

  6. Leetcode——171.宝石与石头

    水题: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. J 中的字母不重复,J 和 S中的所有字符 ...

  7. 关于hash冲突的解决

    分离链接法:public class SeparateChainingHashTable<AnyType>{ private static final int DEFAULT_TABLE_ ...

  8. 使用composer遇到的问题及解决方法

    可以尝试利用composer下载Yii框架,编辑composer.json文件: { "require":{ "yiisoft/yii2":"~2.0 ...

  9. TDD中测试替身学习总结

    在使用TDD开发时,经常会遇到需要被测对象需要依赖其他子系统的情况,但是你希望将测试代码跟依赖项隔离,以保证测试代码仅仅针对当前被测对象或方法展开,这时候你需要的是测试替身.测试替身可以分为四类:- ...

  10. [cnbeta]iPhone 2018年全球出货2.25亿部:中国区下滑两成

    iPhone 2018年全球出货2.25亿部:中国区下滑两成 2019年01月22日 20:12 501 次阅读 稿源:快科技 0 条评论   https://www.cnbeta.com/artic ...