zoukankan      html  css  js  c++  java
  • 手动搭建RabbitMQ服务

    docker环境安装RabbitMQ

    (因为RabbitMQ是Erlang语言编写的,所以如果想在自己服务手动搭建RabbitMQ环境,需要先安装Erlang的运行环境。这里选择了直接启动一个docker镜像)

    1.启动rabbitMQ的docker服务
        docker run -itd  --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
        docker找不到镜像会主动去pull,pull完成过后会主动运行

    2. 查看当前docker进程
        docker ps -a

    3. 进入容器内部

    docker exec -it b815 bash

    4. 添加用户密码及权限设置

    rabbitmqctl add_user lixiaoxuan 123456

    创建完用户后,还没权限访问web UI,需要赋予权限

    rabbitmqctl set_user_tags lixiaoxuan administrator

    rabbitmqctl set_permissions -p / lixiaoxuan ".*" ".*" ".*"

    (具体的用户角色跟权限控制可参考文档https://www.rabbitmq.com/management.html#permissions)

    5. 登录RabbitMq管理UI 10.11.60.104:15672

    创建一个exchange&queue&binding

    exchange='user_action'
    queue='user_action_network_request_finished'
    routing_key='network_request_finished'

    发送消息

     sender.py
    #!/usr/bin/env python
    # coding=utf-8
    import pika
    #创建连接
    connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
    #创建通道
    channel = connection.channel()
    #发布消息
    channel.basic_publish(exchange='user_action',routing_key='network_request_finished',body='hello,world!')
    
    print ("Sent 'hello world '")
    #断开连接
    connection.close()
    View Code

    消费消息

     receive.py
    #!/usr/bin/env python
    # coding=utf-8
    import pika
    #创建连接
    connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
    #创建通道
    channel = connection.channel()
    #回调函数
    def callback(ch,method,properties,body):
        print (" [x] Received %r" % body)
    #消费消息
    channel.basic_consume(queue='user_action_network_request_finished',auto_ack=True,on_message_callback=callback)
    print(' [*] Waiting for messages. To exit press CTRL+C')
    #开始消费消息
    channel.start_consuming()
    View Code

    总结

    这里只分享了RabbitMQ最基础的知识点,更多内容,建议大家去官网学习

    参考https://www.rabbitmq.com/tutorials/tutorial-one-python.html

  • 相关阅读:
    【Redis破障之路】四:Jedis基本使用
    【JVM进阶之路】十二:字节码指令
    Java学习之Spring MVC路由映射
    Java安全之FastJson JdbcRowSetImpl 链分析
    Allatori混淆动态调试分析
    Java工具开发手记
    Java安全之JBoss反序列化漏洞分析
    docker 应用篇————swarm[二十]
    docker 应用篇————docker-compose[十九]
    docker 应用篇————docker 自定义网络[十八]
  • 原文地址:https://www.cnblogs.com/lixiaoxuan/p/14174467.html
Copyright © 2011-2022 走看看