您的位置:首页 > 其它

RabbitMQ集群部署(Rancher)

2018-01-29 19:22 1056 查看

RabbitMQ集群部署(Rancher)

1.  镜像制作

1.1  rabbitmq-base镜像制作
制作基础的RabbitMQ,选取centeros版本为7,RabbitMQ版本为3.6.12,基础镜像所用版本和其他镜像保持一致。通过docker build -t rabbitmq-base:xxxx .打镜像,注意最后的“.”,版本号自定义,例如1.0.0。

1.2  rabbitmq-server镜像制作

通过server下的四个文件Dockerfile、erlang.cookie、rabbitmq.config、startrabbit.sh生成rabbitmq-server:xxxx的镜像(目前镜像版本为1.0.4),具体生成办法和1.1相同。

1.3  rabbitmq-server镜像上传

1.3.1  登录镜像仓库
docker login -u username-p passeword 192.168.10.238。

username和password及镜像服务器随具体情况变更。

1.3.2  对已生成镜像重打TAG
docker tagrabbitmq-server:1.0.4 192.168.10.238/dev/rabbitmq-server:1.0.4

1.3.3  推送镜像
    docker push192.168.10.238/dev/rabbitmq-server:1.0.4(目前可以镜像)

2.  存储卷

在Rancher中通过镜像新建服务rabbit1、rabbit2、rabbit3三个服务,具体配置见下图。







    例如可以将rabbit1端口进行映射,5672->5672、15672-15672;rabbit2端口进行映射,5672->5673、15672->15673;rabbit3端口进行映射5672->5674、15672->15674。同时需要配置存储卷、主机名等,注意名称对应。

3.  集群关联

各个服务运行起来以后进入到rabbit2中,可以通过登录对应主机及主机内容器进入(docker exec -i -t
dockerId bash),也可通过Rancher上提供的执行命令进入。

下面以rabbit2为例子(rabbit3的操作相同),将2挂载到1上:

3.1.1  停止服务
rabbitmqctlstop_app

3.1.2  将2挂载到1上构成集群
    下面介绍两种方式ram或disk,各自有各自的优缺点。RAM方式为内存,速度快,但易丢失;Disk方式,速度慢,磁盘IO大,不丢失。两个方式根据需要2选一。

rabbitmqctl join_cluster --ram rabbit@rabbit1  

rabbitmqctljoin_cluster rabbit@rabbit1  

3.1.3  启动服务
    rabbitmqctl start_app

4.  镜像队列

镜像队列的配置即可以使用语句,也可以使用RabbitMQ带有的界面进行操作,对队列进行镜像。

4.1.1  RabbitMQ控制台(推荐)



4.1.2  命令方式
rabbitmqctl set_policy  ha-allqueue "^"'{"ha-mode":"all"}'

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

set_policy使用规则:set_policy[-p vhostpath] {name} {pattern} {definition} [priority]

5.  负载(Rancher上的LB)

具体配置见下图,目的是使其他的服务访问时只用访问下面所配置的负载均衡,并不用指定固定的rabbit1或rabbit2、rabbit3。



6.  参考
http://blog.csdn.net/zhangningkid/article/details/75258444

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  RabbitMQ Rancher