美文网首页运维
Docker安装RabbitMq

Docker安装RabbitMq

作者: 永动的图灵机 | 来源:发表于2020-04-05 18:10 被阅读0次

    docker的安装使用可参考上篇文章Docker安装与Nginx映射配置

    RabbitMq说明

    RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而聚类和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。--[维基百科]

    RabbitMq使用

    RabbitMq在docker中安装

    • 拉取镜像
    docker pull rabbitmq:management
    
    • 启动
    docker run -d --name docker_rabbitmq \
    -p 5671:5671 -p 5672:5672 -p 4369:4369 \
    -p 15671:15671 -p 15672:15672 -p 25672:25672 \
    rabbitmq:management
    
    • 端口说明

    4369:erlang发现端口

    5672:amqp客户端端口

    15672:http管理界面端口

    25672:clustering服务端内部通信端口

    • 自动重启
    docker update docker_rabbitmq --restart=always
    
    • 查看日志
    docker logs -f [container/id]
    
    • 进入
    docker exec -it docker_rabbitmq bash
    
    • 添加用户(默认guest)
    rabbitmqctl add_user [username] [password]
    
    • 授权
    rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
    
    • 角色
    rabbitmqctl set_user_tags root administrator
    
    • 查看用户
    rabbitmqctl list_users
    

    使用说明

    登录管理界面

    • 域名+端口,登录用户。默认端口15672,默认用户名guest,密码guest。实际情况根据docker端口映射和配置而定
    image

    常用发布订阅模式

    direct

    特点:点对点发送消息

    示例:

    • 创建direct交换机Add a new exchange:direct-exchange01
    image
    • 创建队列Add a new queue:queue01,queue02
    image
    • 交换机与队列绑定Bindings
    image
    • 测试Publish message
    image image
    • 注意:ACK标识接收并消费消息,NACK则相反,消息仍在队列中

    fanout

    特点:不论rountkey,所有队列都可接收消息

    topic

    根据键名匹配所有符合的队列

    • 交换机:topic-exchange01
    • 绑定队列
      • queue01: prekey01.# 前缀为prekey01的所有队列接收消息,#标识匹配一个或多个单词,*标识匹配一个
      • queue02: #.sufkey02后缀为sufkey02的所有队列接收消息
      • queue03: #.sufkey03后缀为sufkey03的所有队列接收消息
    • 测试

    只有queue01收到

    image

    只有queue02收到

    image

    queue01,queue03收到

    image

    更多操作可参考官方文档

    相关文章

      网友评论

        本文标题:Docker安装RabbitMq

        本文链接:https://www.haomeiwen.com/subject/seqpphtx.html