RabbitMQ

docker部署

安装rabbitmq

[root@shen ~]# docker search rabbitmq
INDEX       NAME                                                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/rabbitmq                                   RabbitMQ is an open source multi-protocol ...   3095      [OK]       

启动rabbitmq

docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq

进入容器启动managment插件(web管理)

root@46faab5c3001:/# rabbitmq-plugins enable rabbitmq_management

 开启stomp

root@46faab5c3001:/# rabbitmq-plugins enable rabbitmq_web_stomp
Enabling plugins on node rabbit@46faab5c3001:
rabbitmq_web_stomp
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_stomp
  rabbitmq_web_dispatch
  rabbitmq_web_stomp
Applying plugin configuration to rabbit@46faab5c3001...
The following plugins have been enabled:
  rabbitmq_stomp
  rabbitmq_web_stomp

访问管理界面的地址就是 http://[宿主机IP]:15672,可以使用默认的账户登录,用户名和密码都guest,如:

http://10.1.252.30:15672/#/queues/%2F/hello2

设置durable=false

    def testReceive(self):
        # connection = pika.BlockingConnection(pika.ConnectionParameters(self.MQ_HOST))
        connection = messagequeue.RabbitMQManager().get_conn()
        channel = connection.channel()
        channel.queue_declare(queue='hello2', durable=True)

https://www.jianshu.com/p/14ffe0f3db94

 

 

 

queue的生成:

consumer申明创建queue(front、msg-center)

publisher不能创建queue

 

Dockerfile、docker-compose、python脚本部署

FROM rabbitmq:3-management
ENV RABBITMQ_DEFAULT_USER=root
ENV RABBITMQ_DEFAULT_PASS=%tBqnWF1y3ku
EXPOSE 5671
EXPOSE 5672
EXPOSE 15672
EXPOSE 15674
RUN rabbitmq-plugins enable --offline rabbitmq_web_stomp

 

version: "3"
services:
  web:
    build: .
    image: rabbitmq3-management
    ports: ['5671:5671','5672:5672','15672:15672','15674:15674']

 

import re
import os

DOCKER_COMPOSE_IMAGE_NAME = "rabbitmq3-managment"


def stop_container():
    p = os.popen('docker ps')
    output = p.read()
    # print(output)
    pattern = re.compile(".*{}".format(DOCKER_COMPOSE_IMAGE_NAME))
    try:
        container_id = re.search(pattern, output).group().split()[0]
        if not container_id:
            return
        p = os.popen('docker stop {}'.format(container_id))
        output = p.read()
        print("docker stop {}".format(output))
        p = os.popen('docker rm {}'.format(container_id))
        output = p.read()
        print("docker rm {}".format(output))
    except (AttributeError, ) as e:
        print("stop_container: {}".format(str(e)))


def docker_compose():
    p = os.popen('docker-compose up -d --build')
    output = p.read()
    print(output)


def docker_ps():
    print("------------------")
    docker_ps_cmd = 'docker ps|grep {}'.format(DOCKER_COMPOSE_IMAGE_NAME)
    print(docker_ps_cmd)
    p = os.popen(docker_ps_cmd)
    output = p.read()
    print(output)


if __name__ == "__main__":
    stop_container()
    docker_compose()
    docker_ps()

生产环境部署:

用户、密码(业务端口、管理端口、stomp端口)

docker环境启动相关插件

集群

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值