使用docker 搭建rabbitmq 集群

前言

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

本篇文章要点:docker

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

docker 使用简单介绍:

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

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

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

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

    docker 镜像:相比容器而言,docker镜像是一个相对静态的概念,能够看作是容器对应的文件系统。app

    容器和镜像时能够相互转换的:运维

docker 镜像仓库:存储docker 镜像的地方,能够与maven的仓库作类比。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 容器类执行命令ui

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

    固然针对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网络分区的相关机制,后续文章再进一步介绍。

相关文章
相关标签/搜索