mq server

181 阅读1分钟
  1. 启动容器:
sudo docker run -itd -p 55672:5672 -p 45672:15672 -v /media/moveDir/dxq/test/question_block_segment:/home/code -w /home/code --name mq_server  xxxx:v11 /bin/bash

5672端口为容器内 生产者端口,15672 为控制面板端口 2. 进入容器:

 sudo docker exec -it mq_server /bin/bash
  1. 启动 mq server
rabbitmq-server start

这里即可访问控制面板 host:45672 4. 添加用户以及设置密码,权限

rabbitmqctl add_user dxq 123456
rabbitmqctl set_user_tags dxq administrator
  1. dxq 123456 登录控制面板设置 hosts

  1. mq produce 发送消息
amqp://dxq:123456@host:55672/test
#!/usr/bin/env python
import time

import pika
import json
import sys


sys.path.append('./')
def load_json(config_file):
    with open(config_file) as load_f:
        return json.load(load_f)
    return None


# load configuration file
configure_file = './mq_config.cfg'
config_data = load_json(configure_file)

env = config_data['envs'][1]
# amqp://dxq:123456@host:55672/test
mq_url_parameter = config_data[env]['mq_url_parameter']
mq_queue = config_data[env]['mq_queue']

parameters = pika.URLParameters(mq_url_parameter)
connection = pika.BlockingConnection(parameters)
channel = connection.channel()  #创建通道

channel.queue_declare(queue=mq_queue, durable=True)
body_value1 = {'msg1'}
body_value2 ={'msg2'}
body_values = [body_value1,body_value2]

for i in range(1):
    for body  in body_values:
        body_value_str = json.dumps(body)
        channel.basic_publish(exchange='',
                              routing_key=mq_queue,
                              body=body_value_str) #设置routing_key(消息队列的名称)和body(发送的内容)
        print(" [x] Sent body: %s"%body_value_str)

  1. mq client 接收消息