RabbitMQ - 基础

RabbitMQ学习笔记:内置Prometheus支持rabbit_prometheus插件 从3.8.0开始,RabbitMQ提供内置的Prometheus和Grafana支持。 rabbitmq_prometheus插件中提供了对Prometheus指标收集的支持。该插件以Prometheus文本格式在专用的TCP端口(默认端口15692)上公开所有RabbitMQ指标。 rabbitmq_prometheus插件是RabbitMQ指标的核心导出器,由RabbitMQ核心团队开发。这是... 阅读详情

一、基础知识

  •   大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力
  •   消息服务中两个重要概念: 消息代理(message broker)和目的地(destination) 当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。
  •   消息队列主要有两种形式的目的地 队列(queue):
    1.  点对点消息通信(point-to-point) 主题(topic):
    2.  发布(publish)/订阅(subscribe)消息通信

      

 

  

 

  点对点式: 消息发送者发送消息,消息代理将其放入一个队列中,消息接收者从队列中获取消息内容,消息读取后被移出队列 消息只有唯一的发送者和接受者,但并不是说只能有一个接收者

  发布订阅式: 发送者(发布者)发送消息到主题,多个接收者(订阅者)监听(订阅)这个主题,那么就会在消息到达时同时收到消息

  JMS(Java Message Service)JAVA消息服务: 基于JVM消息代理的规范。ActiveMQ、HornetMQ是JMS实现

  AMQP(Advanced Message Queuing Protocol) 高级消息队列协议,也是一个消息代理的规范,兼容JMS RabbitMQ是AMQP的实现  

  

 

 

  Spring支持

    spring-jms提供了对JMS的支持

    spring-rabbit提供了对AMQP的支持

    需要ConnectionFactory的实现来连接消息代理

    提供JmsTemplate、RabbitTemplate来发送消息

    @JmsListener(JMS)、@RabbitListener(AMQP)注解在方法上监听消息代理发布的消息

    @EnableJms、@EnableRabbit开启支持

  Spring Boot自动配置

    JmsAutoConfiguration

    RabbitAutoConfiguration

 

  RabbitMQ简介:

    RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现。

    核心概念 Message

    消息,消息是不具名的,它由消息头和消息体组成。消息体是不透明的,而消息头则由一系列的可选属性组成,这些属性包括routing-key(路由键)、priority(相对于其他消息的优先权)、delivery-mode(指出该消息可能需要持久性存储)等。

    Publisher

    消息的生产者,也是一个向交换器发布消息的客户端应用程序。

    Exchange

    交换器,用来接收生产者发送的消息并将这些消息路由给服务器中的队列。 Exchange有4种类型:direct(默认),fanout, topic, 和headers,不同类型的Exchange转发消息的策略有所区别

    Queue

    消息队列,用来保存消息直到发送给消费者。它是消息的容器,也是消息的终点。一个消息可投入一个或多个队列。消息一直在队列里面,等待消费者连接到这个队列将其取走。

    Binding

    绑定,用于消息队列和交换器之间的关联。一个绑定就是基于路由键将交换器和消息队列连接起来的路由规则,所以可以将交换器理解成一个由绑定构成的路由表。 Exchange 和Queue的绑定可以是多对多的关系。

    Connection

    网络连接,比如一个TCP连接。

    Channel

    信道,多路复用连接中的一条独立的双向数据流通道。信道是建立在真实的TCP连接内的虚拟连接,AMQP 命令都是通过信道发出去的,不管是发布消息、订阅队列还是接收消息,这些动作都是通过信道完成。因为对于操作系统来说建立和销毁 TCP 都是非常昂贵的开销,所以引入了信道的概念,以复用一条 TCP 连接。   

    Consumer

    消息的消费者,表示一个从消息队列中取得消息的客户端应用程序。

    Virtual Host

    虚拟主机,表示一批交换器、消息队列和相关对象。虚拟主机是共享相同的身份认证和加密环境的独立服务器域。每个 vhost 本质上就是一个 mini 版的 RabbitMQ 服务器,拥有自己的队列、交换器、绑定和权限机制。vhost 是 AMQP 概念的基础,必须在连接时指定,RabbitMQ 默认的 vhost 是 / 。

    Broker

    表示消息队列服务器实体

    

 

【从0到1学RabbitMQ】RabbitMQ基础篇 / 消费者@Component@Slf4jlog.info("消费者收到了消息{}" , msg);从代码我们可以看到其实很简单,我们只需要把类作为Bean对象管理,然后再方法中添加注解,指定监听的队列是哪个,就可以进行监听// 发送者@Autowired@Test发送消息也是非常简单,指定发送的队列(这里入门没有指定交换机),然后向队列中发送消息,监听着就可以监听到对应的消息。 阅读详情

相关推荐

rabbitmq-prometheus:核心RabbitMQ指标的简约Prometheus导出器

rabbitmq-prometheus:核心RabbitMQ指标的简约Prometheus导出器

Rabbitmq互为主备的理解和prometheus监控

今天又有人问起来rabbitmq的高可用方式,因为和常见的主从模式有点区别,所以就记录一下。rabbitmq集群的镜像队列提供了更高级的主从备份,就是互为主备的主从队列。rabbitmq-server为客户端提供了访问其中任何一个节点都能获取整个集群的元数据,所以生产者消费者是直观看到具体是连接到集群中的哪台机器,但可以肯定的是主队列接收exchange路由过来的消息,及推送消息给消费者,从队列是无法接收到exchange路由过来的消息的;但从队列可以接收主队列同步过来的消息,并提供给消费者。总结来说就是r

wangdonghello的专栏 1371

BPMN-JS :修改节点“Change Type”事件类型

修改路径:node_modules\bpmn-js\lib\features\replace\ReplaceOptions.js。

TaylorY的博客 679

普罗米修斯笔记:初识Prometheus

文章目录Prometheus简介Prometheus特性pull方式push方式核心组成部分Prometheus serverClient librariesPush GatewayExportersAlertmanager架构图Prometheus工作流程Prometheus数据模型指标名称标签时序样本Prometheus 的四种数据类型CounterGaugeHistogramSummaryJobs and Instances Prometheus简介 Prometheus官网地址:https://pr

u011047968的专栏 1778

GD32H7实战:5步搞定YOLO轻量化模型部署到MCU(附避坑指南)

本文详细介绍了如何将YOLO轻量化模型部署到GD32H7 MCU的完整实战流程。通过五个关键步骤,涵盖环境搭建、模型训练、格式转换到工程集成,并重点分享了使用GD32AI-ModelZoo工具链进行MCU部署的避坑指南,帮助开发者在资源受限的边缘设备上实现高效目标检测。

weixin_29070861的博客 445

【代码审计】RuoYi定时任务漏洞:从SQL注入到RCE的攻防演变

本文深入剖析了RuoYi框架定时任务模块从早期版本无校验到引入黑白名单机制,再到被组合利用实现RCE的完整漏洞演变过程。文章详细分析了SQL注入与定时任务功能结合导致的远程代码执行漏洞,并总结了代码审计与安全开发的核心要点,为开发者提供了重要的安全参考。

yellow的专栏 699

Prometheus 监控Rabbitmq

系统:CentOS6.6 安装go [root@server0 ~]# tar zxvf go1.8.1.linux-amd64.tar.gz -C /usr/local [root@server0 ~]# mkdir /Golang [root@server0 ~]# vim /etc/profile export GOROOT=/usr/local/go export GOBIN=

真理部 4545

飞腾X100芯片GPU状态查询

本文档对在linux系统下查看X100芯片GPU状态信息进行说明,可以帮助大家了解芯片的实时工作状态。

乌拉大喵喵 2814

RabbitMq 基础

RabbitMQ 是一个开源的消息代理(message broker)软件,也称为队列服务器(queue server),它允许你通过网络发送和接收消息。它是遵循AMQP(高级消息队列协议,Advanced Message Queuing Protocol)标准实现的消息中间件。

2301_80035594的博客 5375

YOLOv11多模态融合实战:基于YOLOFuse的RGB与红外线(IR)协同检测技术解析

本文深入解析了基于YOLOv11的YOLOFuse多模态融合技术,重点探讨了RGB与红外线(IR)协同检测的实现原理与实战应用。文章详细介绍了双流架构与数据级、特征级、决策级三种融合策略,并通过实战案例展示了其在低光照、复杂环境下显著提升检测精度与鲁棒性的优势,为全天候安防、自动驾驶等场景提供了有效的技术解决方案。

weixin_29041195的博客 650

FreeSWITCH视频通话实战:关键配置文件解析与编解码优化

本文详细解析了FreeSWITCH视频通话实战中的关键配置,重点介绍了如何通过修改`conf/vars.xml`和`sip_profiles/internal.xml`文件来启用媒体代理、优化编解码器设置(如H.264和VP8),并解决常见的视频流协商与网络穿透问题,帮助用户快速实现稳定、高质量的视频通话功能。

js777的博客 252

RabbitMQ基础

RabbitMQ基础 目录RabbitMQ基础一级目录二级目录三级目录一、MQ基础1.MQ的基本概念2.分布式系统通信的方式3.MQ的优劣3.1 MQ的优势3.2 MQ的劣势二、RabbitMQ基础1.JMS2.RabbitMQ安装2.1 安装说明2.2 踩坑事件2.3 安装路径3.代码连接RabbitMQ3.1 导入依赖3.2 生产者代码(简单模式)3.3 消费者代码(简单模式)4.工作模式4.1 工作队列模式4.2 订阅模式4.2.1 fanout(广播模式)4.2.2 routing(路由模式)4.

weixin_45794641的博客 2626

通俗易懂的Harris 角点检测

点击上方“3D视觉工坊”,选择“星标”干货第一时间送达Harris 角点检测 认为特征点具有局部差异性。如何描述“特征点具有局部差异性”:以每一个点为中心,取一个窗口,窗口大小为5*5...

3D视觉工坊 1473

RabbitMQ基础篇之RabbitMQ的安装部署

虚拟主机,起到数据隔离的作用,可以在控制台中查看和创建新的 Virtual Host。每个项目可以在 RabbitMQ 中创建自己的 Virtual Host(虚拟主机),内部可以创建独立的交换机和队列。类似于数据库中的不同数据库实例,可以确保各个项目间的资源不冲突。publisher:消息发送者consumer:消息的消费者queue:队列,存储消息exchange:交换机,负责路有消息消息流转过程生产者将消息发送到交换机。交换机根据预定规则将消息路由到队列。消费者从队列中消费消息。

2301_80093566的博客 1250

GameFramework教程✨六、怎样加载一个3D UI

怎样加载一个3D UI

星河造梦坊 1583

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

RabbitMQ在windows下安装部署

Hanson的博客 4080

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

RabbitMQ基础篇

SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。自动声明队列、交换机及其绑定关系基于注解的监听器模式,异步接收消息封装了RabbitTemplate工具,用于发送消息Publisher:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发给X(交换机)Exchange:交换机,图中的X。一方面,接收生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。

weixin_44029753的博客 1789

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

RabbitMQ基础入门

接下来,我们就学习它的基本概念和基础用法。多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息将消息按照规则路由到与之绑定的队列不能缓存消息,路由失败,消息丢失FanoutExchange的会将消息路由到每个绑定的队列描述下Direct交换机与Fanout交换机的差异?Fanout交换机将消息路由给每一个与之绑定的队列。

SevenCoding的博客 1866
上一篇: vue - 结合腾讯地图时绑定监听要使用箭头函数不然无法绑定
下一篇: tomcat - windows服务器中对tomcat指定jdk并添加到服务中
Prometheus_xiao
博客等级 码龄9年 3粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值