社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

使用docker 搭建rabbitmq 集群

zxhy • 5 年前 • 355 次点击  
阅读 4

使用docker 搭建rabbitmq 集群

前言

之前几篇文章简要的介绍了一下rabbitmq的使用场景和特性,但是对rabbitmq的集群和网络分区这块没有提及到。本文主要介绍一下rabbitmq 集群的搭建过程,包括相应的命令使用,关于rabbitmq的网络分区,后面再总结。

本篇文章要点:

  • docker 使用简单介绍
  • 使用docker 搭建rabbitmq 集群

docker 使用简单介绍:

  • 问:什么是docker?
  • 答: docker 是容器化技术的一种实现,它是一个轻量级、便携式、与外界隔离的容器,也是一个可以在容器中很方便地构建、传输、运行应用的引擎。和传统的虚拟化技术不同的是,Docker 引擎并不虚拟出一台虚拟机,而是直接使用宿主机的内核和硬件,直接在宿主机上运行容器内应用。

  • docker 主要用来解决什么问题?

    docker 主要通过将程序和运行环境打包到一起,解决部署的环境依赖问题,真正做到跨平台的分发与使用。

  • docker 常用概念介绍:
    docker 容器: docker 容器从形态上看是运行在虚拟机上的一个进程,该进程加入了资源的隔离和限制。

    docker 镜像:相比容器而言,docker镜像是一个相对静态的概念,可以看做是容器对应的文件系统。

    容器和镜像时可以相互转换的:

docker 镜像仓库:存储docker 镜像的地方,可以与maven的仓库做类比。

  • docker 的常见操作:
    docker info : 查看docker 运行状态以及版本相关信息的概念,是整个docker daemon 守护进程运行状况的缩影,包括容器个数,镜像个数,daemon 版本,使用的存储驱动等信息。 docker pull :从docker 镜像仓库拉取镜像
    docker push: 提交镜像到镜像仓库 (和git的操作命令很类似)
    docker ps :查看容器(运行的docker进程)
    docker run :运行docker 镜像
    docker start/stop: 启停docker 容器 docker build :构建Docker镜像 docker tag:给镜像打标签 docker exec :在docker 容器类执行命令

    关于每个命令的相关参数和选项有很多的资料对这块做介绍,这里就不啰嗦了。

    当然针对docker 还有很多知识,比如dockerfile 的相关指令,docker 网络类型,存储驱动类型,docker compose ,docker swarm 等等偏运维的知识点特别多,后续在对docker 的实践总结中再细说。

    docker 搭建rabbitmq 集群:

    • docker 安装运行rabbitmq;
    • 加入rabbitmq节点到集群

docker 安装运行rabbitmq:

docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq

docker run -d --hostname rabbit2 --name myrabbit2 -p 5673:5672 --link myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq

docker run -d --hostname rabbit3 --name myrabbit3 -p 5674:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq
复制代码

注意:RABBITMQ_ERLANG_COOKIE 集群中不同节点的erlang cookie值要相同

加入rabbitmq 到集群:

 设置节点1:
 docker exec -it myrabbit1 bash rabbitmqctl stop_app 
 rabbitmqctl reset
 rabbitmqctl start_app
 
 设置节点2:
 docker exec -it myrabbit2 bash 
 rabbitmqctl stop_app 
 rabbitmqctl reset 
 rabbitmqctl join_cluster --ram rabbit@rabbit1 
 rabbitmqctl start_app
 
 设置节点3:
 docker exec -it myrabbit2 bash 
 rabbitmqctl stop_app 
 rabbitmqctl reset 
 rabbitmqctl join_cluster --ram rabbit@rabbit1 
 rabbitmqctl start_app
复制代码

设置好之后,使用http://物理机ip:15672 进行访问了,默认账号密码是guest/guest 启动了3个节点,1个磁盘节点和2个内存节点。

##总结 本文只是简单的介绍了一下通过docker搭建一个简单的集群的相关步骤和命令。关于rabbitmq网络分区的相关机制,后续文章再进一步介绍。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/31824
 
355 次点击