RabbitMQ安装及基本使用

RabbitMQ练习(Work Queues) 在本练习中,将创建一个工作队列(Work Queue),它将被用来在多个工作者(Worker)之间分配需要较长时间来完成的任务( time-consuming tasks)。工作队列(也称为任务队列)避免立即执行复杂任务:复杂任务往往是需要花费系统更多时间和更多资源进行处理的任务。工作队列的设计初衷是减少对即时资源的需求。在某些情况下,如果直接执行某些任务,可能会消耗大量计算资源,导致系统响应变慢或无法处理其他请求。延迟执行任务。 阅读详情

1. 安装

# 1.拉取镜像
[root@izbp1j6sv2mtxgnuthuw6bz ~]# docker pull rabbitmq:3.8-management
# 2.查看镜像
[root@izbp1j6sv2mtxgnuthuw6bz ~]# docker images
# 3.启动
[root@izbp1j6sv2mtxgnuthuw6bz ~]# docker run -itd --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.8-management
a5ca877169d4eda31a9c404f94565c118f1cc64de2cbb398ff17a66e72c682cd
# 4.查看启动情况
[root@izbp1j6sv2mtxgnuthuw6bz ~]# docker ps
CONTAINER ID   IMAGE                     COMMAND                  CREATED         STATUS         PORTS                                                                                                         NAMES
a5ca877169d4   rabbitmq:3.8-management   "docker-entrypoint.s…"   4 seconds ago   Up 3 seconds   4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp   rabbitmq
问题
  • 防火墙问题
  • 启动web管理界面
# 进入rabbitmq
[root@izbp1j6sv2mtxgnuthuw6bz ~]# docker exec -it rabbitmq bash
# 启动web管理界面
root@a5ca877169d4:/# rabbitmq-plugins enable rabbitmq_management

2.3.1 添加新用户

# 创建账号
root@a5ca877169d4:/# rabbitmqctl add_user admin admin
Adding user "admin" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.

# 设置用户角色
root@a5ca877169d4:/# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...

# 设置用户权限
# set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
# 用户 admin 具有/vhost1 这个 virtual host 中所有资源的配置、写、读权限
root@a5ca877169d4:/# rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/" ...

# 查看当前用户和角色
root@a5ca877169d4:/# rabbitmqctl list_users
Listing users ...
user    tags
admin   [administrator]
guest   [administrator]

2.RabbitMQ

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)

2.1 前置概念

2.1.1 AMQP核心概念

请添加图片描述

虚拟主机(virtual host)或(vhost)
  • 一组交换机、队列和绑定器被称为 虚拟主机(vhost)
  • RabbitMQ server 可以说就是一个消息队列服务器实体(Broker)
    • Broker当中可以有多个用户,而用户只能在虚拟主机的粒度进行权限控制,所以RabbitMQ中需要多个虚拟主机
    • 每一个RabbitMQ服务器都有一个默认的虚拟主机
交换机(exchange)
  • 它指定消息按什么规则,路由到哪个队列。它可以被理解成具有路由表的路由程序。(发送消息的实体)
  • 交换机可以存在多个,每个交换机在自己独立的进程当中执行,因此增加多个交换机就是增加多个进程,可以充分利用服务器上的CPU核以便达到更高的效率。
  • Exchange的类型
    • Direct:直接交换机通过消息上的路由键直接对消息进行分发,相当于精确匹配,一对一
    • Topic:这个交换机会将路由键和绑定上的模式进行通配符匹配,相当于模糊匹配,一对多
    • Fanout:交换机会将消息发送到所有和它进行绑定的队列上,广播,群发
    • Headers:消息头交换机使用消息头的属性进行消息路由,相当于模糊匹配(like header%),一对多
队列(queue)
  • 队列是消息载体,每个消息都会被投入到一个或多个队列
  • 试图创建一个已经存在的队列,RabbitMQ会直接忽略这个请求(接收消息的实体)。
绑定器(bind)
  • 作用:把exchange和queue按照路由规则绑定起来
    • 将交换器和队列连接起来,并且封装消息的路由信息

2.1.2 程序中连接与消息使用的两个关键概念

连接(Connection)
  • 与RabbitMQ Server建立的一个连接
    • 由ConnectionFactory创建
    • 每个connection只与一个物理的Server进行连接,此连接是基于Socket进行连接的
  • AMQP一般使用TCP
通道 (Channel)
  • 消息通道(主要进行相关定义,发送消息,获取消息,事务处理等)
  • 在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务

请添加图片描述

2.2 七种工作模式

请添加图片描述

  • 简单模式:一个生产者,一个消费者
  • work模式:一个生产者,多个消费者,每个消费者获取到的消息唯一
  • 订阅模式:一个生产者发送的消息会被多个消费者获取
  • 路由模式: 发送消息到交换机并且要指定路由key ,消费者将队列绑定到交换机时需要指定路由key
  • topic模式:将路由键和某模式进行匹配,此时队列需要绑定在一个模式上,“#”匹配一个词或多个词,“*”只匹配一个词
  • RPC模式:使用RabbitMQ构建RPC系统:客户端和可伸缩RPC服务器
  • 发布确认:与发布者进行可靠的发布确认
RabbitMQ练习(Routing) 之前练习了一个简单的日志系统,能够将日志消息广播给多个接收者。本练习中,将订阅消息的子集。例如,只将关键的错误消息定向到日志文件,同时在控制台上打印所有日志消息。 阅读详情

相关推荐

rabbitMq使用笔记一:Window下安装使用RabbitMQ

Windows下安装使用rabbitMQ。windows环境rabbitMQ的安装和使用,常用命令。

Running 2万+

MQ、RabbitMQ学习

1、MQ的基本概念: 1.1 MQ概述 MQ全称Message Queue (消息队列),是在消息的出传输过程中保存消息的容器,多用于分布式系统之前进行通信 小结 MQ 、消息队列、存储消息的中间件 发送放称为生产者,接收方称为消费者 1.2 MQ 的优势和劣势 优势: 应用解耦 —— 提高系统的容错性和可维护性 异步提速 —— 提高用户体验和系统吞吐量 削峰填谷 —— 提高系统稳定性 削峰 填谷 劣势: 系统的可用性降低 系统的复杂度提高 一致性问题 1.

汇杰IT博客 1366

RabbitMQ的安装和使用

运行单元测试类,我们可以看到控制台中输出下面的内容,消息被发送到了RabbitMQ Server的hello队列中。25672:Erlang分发用于节点间和CLI工具通信,并从动态范围分配(默认情况下限制为单个端口,计算为AMQP端口+ 20000)。下面我们通过在SpringBoot项目中集成RabbitMQ,并实现一个简单的发送、接收消息的例子来对RabbitMQ有一个只管的感受和理解。切换到应用主类的控制台,我们可以看到类似如下输出,消费者对hello队列的监听程序执行了,并输出了接收到的消息信息。

2401_89791332的博客 1148

Rabbit MQ 基础

一.MQ是什么? 1.MQ (Message Queue):翻译过来就是消息对列------用来存放消息的队列。 2.MQ本质就是一个队列,所以它也有队列的特点是FIFO(先进先出)。 3.MQ是一种跨进程的通信机制,常用于上下游间传递信息。 4.MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的通信服务。消息上游发送消息只依赖于MQ,不依赖于其他服务。 二.为什么要使用MQ? 1.流量消峰 例如:某一订单系统,最大并发多、只能处理一万次订单,但是在某一时刻,订单数远超出10000时,未使用M

weixin_48818549的博客 245

RabbitMQ系列—RabbitMQ 安装

RabbitMQ的安装过程非常简单:由于RabbitMQ是基于Erlang语言开发并运行的,所以安装RabbitMQ的第一步是安装Erlang运行环境。您可以在https://www.erlang-solutions.com/resources 下载最新Erlang版本进行安装(注意不同的RabbitMQ版本有不同的Erlang最低版本要求,笔者使用的RabbitMQ版本为V3.5.4,Erlang

此博客已停用,博文会逐渐转移到新地址,http://blog.youkuaiyun.com/liupeifeng3514 4288

在WSL上安装rabbitmq

WSL 在Windows 10 上安装适用于 Linux 的 Windows 子系统 (WSL) 资源 rabbitmq依赖于erlang,所以要先安装erlang,最好不要用apt-get install安装,ubantu内自带的er-lang版本较低,再加上erlang和rabbitmq需要匹配,最好安装的都是最新的。 一、资源地址 RabbitMQ官网安装教程: https://www.rabbitmq.com/install-debian.html RabbitMQ .deb 安装包github

weixin_45590490的博客 1845

rabbitmq安装

Linux 安装 RabbitMQ 安装 yum update -y ## install these dependencies from standard OS repositories yum install socat logrotate -y yum install erlang rabbitmq-server -y # 开启web插件 rabbitmq-plugins enable rabbitmq_management 命令 # 启动 [root@master software]# serv

zzw_17600691357的博客 222

RabbitMQ详细安装教程

RabbitMQ安装

m0_66152148的博客 1445

docker安装RabbitMQ

docker安装RabbitMQ 查看仓库里的RabbitMQ docker search rabbitmq 安装RabbitMQ docker pull rabbitmq 这里是直接安装最新的,如果需要安装其他版本在rabbitmq后面跟上版本号即可 启动RabbitMQ docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq 安装插件 先执行docker ps 拿到当前的镜像ID

努力明天会更好的博客 3万+

spring boot rabbitmq学习练习demo源码

spring boot rabbitmq框架组合练习学习做的一个完整的精简的小demo项目源码

ROS2 Nav2实战:解决rviz2显示no map received的3种实用方法(附详细步骤)

本文针对ROS2 Nav2导航栈中rviz2显示“no map received”的常见问题,提供了三种核心解决方案。深入剖析了问题根源在于ROS2生命周期节点管理、QoS策略不匹配及坐标系设置错误,并分别通过手动配置流程、集成生命周期管理器以及调优QoS策略与固化rviz2配置,给出了详细的实战步骤,确保地图数据可靠显示。

j0k1l2m3n的博客 422

【RabbitMQ】如何在 Ubuntu 安装 RabbitMQ

本期内容主要介绍如何在 Ubuntu 下安装 RabbitMQ~ 并简单介绍了 RabbitMQ 的管理界面。

爱编程爱运动的博客 7199

SpringDoc 基本使用指南

SpringDoc 凭借零配置启动注解简洁和深度兼容 Spring 生态的优势,已成为 Spring Boot API 文档的首选工具。自动化- 减少手动维护文档的成本;标准化- 严格遵循 OpenAPI 3 规范;可扩展- 分组、安全控制灵活适配复杂项目。访问即可查看交互式文档(默认路径)

墨鸦的博客 1万+

RabbitMQ 的安装

RabbitMQ 的安装 Windows环境 1. 安装Erlang ,RabbitMQ 依赖于Erlang,需要先安装Erlang. 官网下载地址:http://www.erlang.org/downloads 一路next 配置环境变量到path 中 检测 cmd erl 显示版本信息即配置成功 2. 安装 RabbitMQ 官网下载地址:http://www.rabbitmq.com/download.html 运行 rabbitmq-server-3.7.12.exe 一路n

MH19的博客 3827

物联网开发笔记(34)- 使用Micropython开发ESP32开发板之控制步进电机(28BYJ-48)

使用Micropython开发ESP32开发板之控制步进电机(28BYJ-48)

zhusongziye的博客 1万+

别再乱按F8了!Win10系统修复的正确姿势:用管理员CMD运行sfc /scannow

本文详细介绍了Windows 10系统修复的正确方法,重点推荐使用管理员CMD运行`sfc /scannow`命令。相比传统的F8键和重装系统,这一方法更高效且安全,能解决大多数系统文件损坏问题。文章还提供了管理员CMD的启动方式、sfc命令的完整参数解析以及实战故障排除流程图,帮助用户快速恢复系统健康。

weixin_29218963的博客 459

【RabbitMQ】Windows下RabbitMQ的安装和部署

RabbitMQ在windows下安装部署

Hanson的博客 4080

深入解析MOS管电容特性:从基础理论到高频应用

本文深入解析了MOS管的电容特性,从基础物理结构出发,详细拆解了栅氧电容、重叠电容和结电容的成因与影响。文章重点探讨了电容值随工作状态变化的非线性特性,并分析了其在CMOS高频开关电源、射频电路等应用中的关键作用,包括开关损耗、米勒效应、信号完整性挑战以及如何将电容特性转化为可控元件(如MOS变容管)的机遇。最后提供了从选型、仿真到PCB布局的实战设计指南。

weixin_29278805的博客 382

Windows上安装RabbitMQ

简介 Ra...

SummerGao 1473

CCAR-23《正常类飞机适航规定》和CCAR-25《运输类飞机适航规定》差异分析

通过详细比较CCAR-23和CCAR-25在适用范围、设计标准、性能要求、运行限制、安全冗余和环境适应性方面的差异,我们可以看出,CCAR-23适用于轻型飞机,开发和运营成本较低,设计要求相对简单。而CCAR-25适用于大规模运输飞机,设计、开发、测试和运营管理都需要更高的复杂性和投入。

qq_41854911的博客 3706

基于MATLAB的Hough变换指针式仪表识别

综上所述,本文介绍了如何使用MATLAB中的Hough变换算法来实现指针式仪表的自动识别和读数。通过图像预处理、Hough变换和直线提取,我们可以准确地检测指针的位置,并进一步进行仪表读数。本文将介绍如何使用MATLAB中的Hough变换算法来实现指针式仪表的自动识别和读数。在指针式仪表识别中,我们可以利用Hough变换来检测仪表盘上的指针。以上是基于MATLAB的Hough变换指针式仪表识别的详细步骤和源代码示例。根据指针在仪表盘上的位置,我们可以进行角度计算或使用其他技术来获取准确的读数。

techDM的博客 462

RabbitMQ 安装使用

RabbitMQ 安装使用

Go_ahead_forever的博客 2386

复现基于混频因子模型的GDP即时预测方法

基于混频因子模型的GDP即时预测方法复现 本文复现了混频因子模型(MIDAS)在GDP即时预测中的应用。该方法整合7个月度宏观经济变量(工业增加值、CPI、PMI等)与季度GDP数据,通过状态空间模型实现高频预测。技术实现包括:1)使用PCA提取潜在共同因子;2)构建状态空间模型处理混频数据;3)通过卡尔曼滤波进行参数估计。实证结果显示模型预测效果良好(测试集R²=0.82),其中工业增加值对因子1贡献最大(0.82),CPI对因子2贡献显著(0.78)。该方法为决策者提供了更及时的季度GDP估算。

huanghm88的专栏 601

RabbitMQ 安装

rabbitmq安装

weixin_43844718的博客 2638

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

RabbitMQ安装及使用

下载由于RabbitMQ是基于Erlang语言开发,所以在安装RabbitMQ之前,需要先安装Erlang。好在RabbitMQ官网已经为我们提供了Erlang的安装包Erlang下载地址:http://www.rabbitmq.com/releases/erlang/本人使用的操作系统为:CentOS7下载的Erlang安装包为:erlang-19.0.4-1.el7.centos.x86_64.

瓜爪牛的博客 4496

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: springboot和springcloud版本对应关系
下一篇: 使用apache 的FileUtils处理文件的复制等操作方式
Arbitrary.`
博客等级 码龄8年 9801粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值