Linux环境下,通过Docker搭建及配置RabbitMQ

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

😊 @ 作者: 一恍过去
💖 @ 主页: https://blog.csdn.net/zhuocailing3390
🎊 @ 社区: Java技术栈交流
🎉 @ 主题: Linux环境下,通过Docker搭建及配置RabbitMQ
⏱️ @ 创作时间: 2022年07月17日

docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq

前言

RabbitMQ是一个开源的消息队列中间件,用于在应用程序之间进行可靠的消息传递。它实现了高级消息队列协议(AMQP),提供了可靠的消息传递、灵活的消息路由和高度可扩展性的特性。

RabbitMQ作为消息中间件提供了以下主要功能和概念:

  • 生产者:发送消息的应用程序。
  • 消费者:接收并处理消息的应用程序。
  • 消息队列:存储消息的缓冲区,使生产者和消费者之间的通信异步化。
  • 交换机:接收生产者发送的消息并将其路由到一个或多个消息队列。
  • 绑定:定义了交换机和消息队列之间的关联关系,决定消息如何被路由。
  • 路由键:生产者在将消息发送到交换机时指定的标识符,用于消息的路由选择。
  • 队列:存储消息的缓冲区,消费者从队列中接收消息。
  • ACK(确认机制):消费者在处理完消息后向RabbitMQ发送确认,确保消息已经被消费并可以从队列中删除。

1、Linux环境搭建

本次搭建操作目录:/opt/mq/rabbit

RabbitMQ依赖于Erlang,所有需要先安装Erlang环境

Erlang与RabbitMQ对应版本:https://www.rabbitmq.com/which-erlang.html

本次搭建使用版本:erlang-23.3.4.8-1.el7、rabbitmq-3.8.27-1-el7

注意:如果是CentOS 7.x,选择el7版本,如果是CentOS 8.x,则选择el8版本,通过cat /proc/version可以查看具体内核版本

1.1、Erlang安装

  • Erlang下载:
    ​ 地址:https://github.com/rabbitmq/erlang-rpm/releases,选择erlang-23.3.4.8-1.el7版本
    docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq
  • Erlang安装:
    将下载好的rpm安装包,上传到服务器中,执行以下命令进行安装:
rpm -ivh erlang-23.3.4.8-1.el7.x86_64.rpm	

docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq

1.2、RabbitMQ安装

  • RabbitMQ下载:
    地址:https://github.com/rabbitmq/rabbitmq-server/releases,选择rabbitmq-3.8.27-1-el7版本
    docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq
  • RabbitMQ安装:
    将下载好的rpm安装包,上传到服务器中,依次执行以下命令进行安装:
yum install socat -y
rpm -ivh rabbitmq-3.8.27-1-el7.noarch.rpm

docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq

  • RabbitMQ启动:

添加开机启动:

chkconfig rabbitmq-server on 

启动服务:

/sbin/service rabbitmq-server start

停止服务:

/sbin/service rabbitmq-server stop

查看服务状态

/sbin/service rabbitmq-server status

docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq

1.3、web管理插件

RabbitMQ的可视化管理界面需要进行插件的安装,安装过程如下:
启动插件:

rabbitmq-plugins enable rabbitmq_management

创建登录账号:

# 创建账号,add_user后面分别为:账户 密码
rabbitmqctl add_user admin admin
# 设置用户角色 
rabbitmqctl set_user_tags admin administrator
# 设置用户权限 
# rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

查看用户列表:

rabbitmqctl list_users

docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq
测试登录:
可视化界面的默认端口为15672,访问时:ip:15672即可;
docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq

=========================================================================================================docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq

1.4、卸载

卸载前先停止rabbitmq服务 :

/sbin/service rabbitmq-server stop

查看rabbitmq安装的相关列表:

yum list | grep rabbitmq

docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq
卸载rabbitmq:

yum -y remove rabbitmq-server.noarch

卸载erlang:

# 依次执行以下命令
yum -y remove erlang-*
yum remove erlang.x86_64

删除有关的所有文件 :

rm -rf /usr/lib64/erlang 
rm -rf /var/lib/rabbitmq
rm -rf /usr/local/erlang
rm -rf /usr/local/rabbitmq

2、Docker环境搭建

docker搭建rabbitmq的版本为3.8.27

2.1、拉取镜像

docker pull rabbitmq:3.8.27-management

2.2、创建挂载目录

mkdir -p /root/docker/rabbitmq

2.3、启动容器

# 启动容器并且指定web管理的账户密码
docker run -d --hostname rabbit01 --name rabbitmq \
-p 15672:15672 -p 5672:5672 \
-v /root/docker/rabbitmq/data:/data/rabbitmq \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:3.8.27-management

2.4、开启web页面管理

# 进入容器
docker exec -it rabbitmq /bin/bash
# 开启web页面插件
rabbitmq-plugins enable rabbitmq_management

登录web页面:
地址:http://ip:15672
用户密码及密码:admin/admin

2.5、创建用户

# 进入容器
docker exec -it rabbitmq /bin/bash
# 创建账号,add_user后面分别为:账户 密码
rabbitmqctl add_user admin2 admin2
# 设置用户角色 
rabbitmqctl set_user_tags admin2 administrator
# 设置用户权限 
# rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
rabbitmqctl set_permissions -p "/" admin2 ".*" ".*" ".*"
# 查看用户列表
rabbitmqctl list_users

docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq

3、核心概念

生产者
产生数据发送消息的程序是生产者

交换机

​交换机是 RabbitMQ 非常重要的一个部件,一方面它接收来自生产者的消息,另一方面它将消息推送到队列中。交换机必须确切知道如何处理它接收到的消息,是将这些消息推送到特定队列还是推送到多个队列,亦或者是把消息丢弃,这个得有交换机类型决定

队列

队列是 RabbitMQ 内部使用的一种数据结构,尽管消息流经 RabbitMQ 和应用程序,但它们只能存储在队列中。队列仅受主机的内存和磁盘限制的约束,本质上是一个大的消息缓冲区。许多生产者可以将消息发送到一个队列,许多消费者可以尝试从一个队列接收数据。

消费者

消费与接收具有相似的含义。消费者大多时候是一个等待接收消息的程序,同一个应用程序既可以是生产者又是可以是消费者。

关系图:
docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq

4、工作原理

docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq
Broker: 接收和分发消息的应用,就是RabbitMQ Server

Connection: publisher/consumer 和 broker 之间的 TCP 连接

Channel: Channel 是在 connection 内部建立的逻辑连接,每个线程创建单独的 channel 进行通讯,Channel 作为轻量级的 Connection 极大减少了操作系统建立 TCP connection 的开销

Exchange: message 到达 broker 的第一站,根据分发规则,匹配查询表中的 routing key,分发 消息到 queue 中去。常用的类型有:direct (point-to-point), topic (publish-subscribe) and fanout (multicast)

Queue: 消息最终被送到这里等待consumer 取走

Virtual Hosts: 一个Vhost就相当于一个 库,不同的Vhost之间的Exchange、Queue不同

docker rabbitmq 权限,RabbitMQ,linux,docker,rabbitmq文章来源地址https://www.toymoban.com/news/detail-612461.html

到了这里,关于Linux环境下,通过Docker搭建及配置RabbitMQ的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【VSCode】Windows环境下,VSCode 搭建 cmake 编译环境(通过配置文件配置)

    除了之前的使用 VSCode 插件来编译工程外,我们也可以使用配置文件来编译cmake工程,主要依赖 launch.json 和 tasks.json 文件。 目录 一、下载编译器 1、下载 Windows GCC 2、选择编译器路径 二、配置 debug 环境 1、配置 lauch.json 文件 2、配置 tasks.json 文件 三、编译工程 1、测试工程结

    2024年02月03日
    浏览(42)
  • 消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版)

    本文此章主要介绍环境搭建。此次主要是单机搭建(条件有限),包括在Windows、Linux环境下的搭建,以及RabbitMQ的监控平台搭建。 在搭建RabbitMQ之前,请先确保如下环境已经搭建完毕 Java环境(我的JDK1.8) Maven环境(我的3.6.1目前最新版) Git环境 没有搭建的同学走传送门:

    2024年02月08日
    浏览(33)
  • linux安装配置RabbitMQ和Erlang并配置环境变量

    linux 安装RabbitMQ、Erlang 一、安装Erlang erlang安装成功如下图: 二、安装RabbitMQ 成功登陆rabbitmq后台图例如下: 三、如何在阿里云开启自定义的端口号? 最后补充知识: 如何使用阿里云去开启一个端口号呢? 步骤如下: 1.登陆阿里云 2.搜索【云服务器ECS】,在左侧找到【安全

    2024年02月11日
    浏览(32)
  • 【环境配置】使用Docker搭建LAMP环境

    这篇文章不是介绍DOCKER是什么,也不是阐述DOCKER的核心:镜像/容器和仓库之间的关系,它只是一篇让刚刚接触DOCKER的初学者,在没有完全了解DOCKER是什么之前,也能尽快的在Linux系统下面通过DOCKER来搭建一个LAMP环境,这是其一;其二才是我写这篇文章的初心,我觉得很多事情在

    2024年02月15日
    浏览(32)
  • 【软件测试】Linux环境下Docker搭建+Docker搭建MySQL服务(详细)

    Linux之docker搭建 1、docker运行环境 CentOS7(64-bit),要求系统为64位,系统内核版本为3.10以上 查看系统版本: 查看系统内核版本: 2、docker安装 安装依赖包 添加docker下载源地址 更新yum缓存 安装docker 或者指定docker的安装版本 查看docker版本号 3、安装成功后需要将docker加入开机启

    2024年02月13日
    浏览(55)
  • Linux环境下RabbitMQ的安装(手把手教你安装与配置)

    根据rabbitmq版本要求下载满足要求的erlang RabbitMQ Erlang Version Requirements — RabbitMQ 以我自己的下载版本为例,提供网盘下载链接 链接:https://pan.baidu.com/s/1HkQphzjHp5xNvjN8RZauww?pwd=6666  提取码:6666 登录官网RabbitMQ Erlang Version Requirements — RabbitMQ 下滑至该位置,点击进入   一般不会下

    2024年02月04日
    浏览(37)
  • Linux环境搭建(二)— 配置Java环境

    写在前面: 本文默认你的Linux系统已经安装vim,yum等,如你使用的是一个全新的操作系统,移步上一篇开始配置: Linux环境搭建(一)— 实现ssh连接 未安装yum可参考文章: Linux安装yum 当然,Java包的安装也可以使用其他方式,比如apt安装、npm安装、源包解析等,可以查找其他

    2024年02月12日
    浏览(49)
  • 利用Docker搭建Linux ARM64架构编译环境

    不想折腾交叉编译环境,但是又实在忍不了A53上编译工程的龟速,于是乎就想着是不是可以通过Docker搭一个arm linux开发环境,这样编译好的工程直接拷进A53中就可以运行了。说干就干,踩了一些坑,但是最终还是成功了。这里简单记录一下,你们能不能看懂,就看自己的造化

    2024年02月11日
    浏览(31)
  • k8s搭建(一、环境配置与docker安装)

    天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 k8s搭建文章: k8s搭建(一、k8s环境配置与docker安装) k8s搭建(二、k8s组件安装) k8s搭

    2024年02月21日
    浏览(39)
  • Kali+docker搭建Vulfocus靶场并配置vulfocus漏洞环境

    好吧,上次更新博客也不记得是几年前的事情了,来说说消失的这段时间我在干嘛。最近超级无敌忙,每天送餐从早送到晚,同时兼职某团和饿了某,现在正在给一个靓女送杯奶茶,做安服税后5千块钱的工资能干嘛?赶紧和我一起做某团骑手,少走30年弯路。 难得有空,最近

    2024年02月05日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包