Docker之安装RabbitMq

这篇具有很好参考价值的文章主要介绍了Docker之安装RabbitMq。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

rabbitMQ是一款开源的高性能消息中间件,常用作消息队列暂存,异步处理,发布/订阅也可以用作RPC调用,下面带大家使用docker搭建,快速方便

二、获取镜像

1、使用docker search rabbitMq命令获取镜像列表

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

 2、拉取镜像
  • 方式一(指定镜像文件中拉取指定版本):sudo docker pull 镜像地址/rabbitmq:版本-management

docker pull docker.io/rabbitmq:3.8-managemen

3.8版本是STARS数最多的官方镜像。此处需要注意,默认rabbitmq镜像是不带web端管理插件的,所以指定了镜像tag为3.8-management,表示下载包含web管理插件版本镜像,其它Tag版本可以访问DockerHub查询

DockerHub

  • 方式二(默认镜像地址中拉取最新版本)

sudo docker pull rabbitmq:management

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

3、创建rabbitMq容器

使用sudo docker images查看rabbtiMq镜像ID

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

 4、运行并挂载到指定目录

sudo docker run -d --name rabbitmq \
-p 5671:5671 -p 5672:5672 -p 4369:4369 \
-p 15671:15671 -p 15672:15672 -p 25672:25672 \
rabbitmq:management

运行并挂载到指定目录,实现RabbitMq自动启动

sudo docker run -d --name rabbitmq --restart=always -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 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

执行docker ps可以查看正在运行的容器,我们能看到rabbitMq已经运行

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

 5、查看容器日志

使用docker logs -f [container/id]命令可以查看容器日志,我们执行docker logs -f 3ae命令查看rabbitMq在启动过程中日志,3ae是容器ID的简写——容器ID太长,使用时其写前几位即可

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

 从日志可以看出,rabbitMq默认创建了guest用户,并且赋予administrator角色权限,同时服务监听5672端口TCP连接和15672端口的HTTP连接,至此说明安装成功。

6、进入容器

docker exec -it 容器名 bash

7、添加用户(默认guest),进入容器后操作

rabbitmqctl add_user [username] [password]

8、授权

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

9、角色

rabbitmqctl set_user_tags root administrator

10、查看用户

rabbitmqctl list_users

三、访问rabbitMq

1、访问web界面

在浏览器 输入你的主机Ip:15672回车即可访问rabbitMq的Web端管理界面,默认用户名和密码都是guest,如图出现如下界面代表已经成功了。

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

 2、新添加一个账户

默认的guest 账户有访问限制,默认只能通过本地网络(如 localhost) 访问,远程网络访问受限,所以在使用时我们一般另外添加用户,例如我们添加一个root用户:

  • 执行docker exec -i -t 3ae bin/bash进入到rabbitMq容器内部
[root@localhost docker]# docker exec -i -t 3a bin/bash
root@3ae75edc48e2:/# 
  • 执行rabbitmqctl add_user root 123456 添加用户,用户名为root,密码为123456
root@3ae75edc48e2:/# rabbitmqctl add_user root 123456 
Adding user "root" ...
  • 执行abbitmqctl set_permissions -p / root ".*" ".*" ".*" 赋予root用户所有权限
root@3ae75edc48e2:/# rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
Setting permissions for user "root" in vhost "/" ...
  • 执行rabbitmqctl set_user_tags root administrator赋予root用户administrator角色
root@3ae75edc48e2:/# rabbitmqctl set_user_tags root administrator
Setting tags for user "root" to [adminstrator] ...
  • 执行rabbitmqctl list_users查看所有用户即可看到root用户已经添加成功
root@3ae75edc48e2:/# rabbitmqctl list_users
Listing users ...
user	tags
guest	[administrator]
root	[administrator]

执行exit命令,从容器内部退出即可。这时我们使用root账户登录web界面也是可以的。到此,rabbitMq的安装就结束了,接下里就实际代码开发。

3、常用发布订阅模式
direct

特点:点对点发送消息

示例:

  • 创建direct交换机Add a new exchange:direct-exchange01

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

  • 创建队列Add a new queue:queue01,queue02

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

  • 交换机与队列绑定Bindings

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

  • 测试Publish message

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

注意:ACK标识接收并消费消息,NACK则相反,消息仍在队列中

fanout

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

topic

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

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

只有queue01收到

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

 只有queue02收到

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生

 queue01,queue03收到

docker 安装rabbitmq,Docker,RabbitMq,消息队列,docker,rabbitmq,容器,云原生文章来源地址https://www.toymoban.com/news/detail-778142.html

到了这里,关于Docker之安装RabbitMq的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 消息队列RabbitMQ.01.安装部署与基本使用

    目录  RabbitMQ的作用 Message queue 释义  问题思考  存在的问题 优化方案  案例分析  带来的好处  消息队列特点  Email邮件案例分析 Docker安装部署RabbitMQ 1.下拉镜像 2.运行RabbitMQ  3.打开防火墙端口号并重新运行防火墙 4.容器启动后,可以通过 docker logs 容器 查看日志 6.通过刚才

    2024年01月24日
    浏览(48)
  • 【Docker】之安装 RabbitMQ

    1、下载 RabbitMQ 镜像 下载最新版本的镜像: 更多版本的镜像可以访问 Docker 官网:https://hub.docker.com/_/rabbitmq?tab=tags 2、创建并运行 RabbitMQ 容器 启动命令: 参数说明: -d :表示在后台运行容器; -p :将容器的端口 5672( 应用访问端口 )和 15672 ( 控制台Web端口号 )映射到主

    2024年02月16日
    浏览(34)
  • Docker之安装RabbitMq

    一、前言 rabbitMQ是一款开源的高性能消息中间件,常用作消息队列暂存,异步处理,发布/订阅也可以用作RPC调用,下面带大家使用docker搭建,快速方便 二、获取镜像 1、使用docker search rabbitMq命令获取镜像列表  2、拉取镜像 方式一(指定镜像文件中拉取指定版本):sudo docker

    2024年02月03日
    浏览(30)
  • [小白学微服务]消息队列RabbitMQ 的安装和基础使用

      前言 我们为什么要用消息队列技术? 有些复杂的业务系统,一次用户请求可能会同步调用N个系统的接口,需要等待所有的接口都返回了,才能真正的获取执行结果。 这样就导致了: 1.系统之间耦合性太高,如果调用的任何一个子系统出现异常,整个请求都会异常,对系统

    2024年03月15日
    浏览(94)
  • RabbitMQ实现延迟消息,RabbitMQ使用死信队列实现延迟消息,RabbitMQ延时队列插件

    假设有一个业务场景:超过30分钟未付款的订单自动关闭,这个功能应该怎么实现? RabbitMQ使用死信队列,可以实现消息的延迟接收。 队列有一个消息过期属性。就像丰巢超过24小时就收费一样,通过设置这个属性,超过了指定事件的消息将会被丢弃。 这个属性交:x-message

    2024年02月13日
    浏览(79)
  • liunx+docker+rabbitmq安装延迟队列插件

    前言 在这篇文章中,我们将讨论如何在 Linux 系统上安装 Docker 和 RabbitMQ,并设置延迟队列。 Docker 是一个开放源代码的软件,它可以使应用程序的部署更加简单,而 RabbitMQ 是一个开放源代码的消息代理软件,它接受和转发消息。 延迟队列是一种在特定的延迟之后才开始处理

    2024年02月11日
    浏览(47)
  • Docker中为RabbitMQ安装rabbitmq_delayed_message_exchange延迟队列插件

    1、前言 rabbitmq_delayed_message_exchange是一款向RabbitMQ添加延迟消息传递(或计划消息传递)的插件。 插件下载地址:https://www.rabbitmq.com/community-plugins.html 1、下载插件 首先需要确定我们当前使用的RabbitMQ的版本,我们可以直接登录Web端的管理界面查看版本   也可以在RabbitMQ容器中

    2024年02月12日
    浏览(49)
  • Docker版RabbitMQ安装延迟队列插件及延迟队列项目应用实战

    在项目中经常有延迟业务处理的背景,此时可以借助于Rabbitmq的延迟队列进行实现,但Rabbitmq本身并不支持延迟队列,但可以通过安装插件的方式实现延迟队列 首先确认目前项目使用的Rabbitmq的版本,这里博主的版本是3.9.15的。 访问 Rabbitmq的github网址,检索 delay 找到插件 rabb

    2024年02月02日
    浏览(43)
  • 【RabbitMQ】消息队列-RabbitMQ篇章

    RabbitMQ是一个开源的 遵循AMQP协议 实现的基于Erlang语言编写,支持多种客户端(语言)。用于在分布式系统中 存储消息,转发消息 ,具有 高可用 , 高可扩性 , 易用性 等特征。 1.1、RabbitMQ—使用场景 一般场景 像一般的下订单业务如下图: 将订单信息写入数据库成功后,发

    2024年02月12日
    浏览(50)
  • 3.精通RabbitMQ—消息队列、RabbitMQ

    RabbitMQ面试题 (总结最全面的面试题) 入门RabbitMQ消息队列,看这篇文章就够了 消息队列 是一种基于 队列 ,用于解决 不同进程或应用 之间 通讯 的 消息中间件 。 支持多种 消息传递模式 ,如 队列模型 、 发布/订阅模型 等。 业务解耦 :通过 发布/订阅 模式,减少系统的 耦

    2024年02月15日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包