首页 > 其他分享 >rabbitmq

rabbitmq

时间:2024-11-02 16:20:21浏览次数:3  
标签:队列 rabbitmq 死信 消息 Key 路由

1.rabbitmq架构

 Exchange:消息交换机,指定消息按照什么规则,路由到什么队列

Queue:消息的载体,每个消息会被投递到一个或者多个队列

Binding:绑定,将exchange和queue按照路由规则绑定起来

RoutingKey:路由关键字,exchange根据这个关键字进行消息投递

Poducer:消息生产者

Consumer:消费者

Channel:消息通道,在客户端的每个连接里,可建立多个channel

2.交换机类型

fanout:广播型,路由规则无效。

direct:直连型,Routing Key 必须与 Binding Key 完全相匹配

topic:Routing Key 必须与 Binding Key 相匹配的时候才将消 息传送给 Queue,而Topic 的路由规则是一种模糊匹配,可以通过通配符满足 一部分规则就可以传送

header:根据发送的 消息内容中的 headers 属性进行匹配

3.通过rabbitmq的死信队列实现订单超时取消功能

可以给消息或者队列设置过期时间,并且给队列设置死信交换机属性,当消息过期后被删除且通过死信交换机投递到死信队列,有专门的消费者消费死信队列的消息。

 

 

标签:队列,rabbitmq,死信,消息,Key,路由
From: https://www.cnblogs.com/gaogao66/p/18522145

相关文章

  • PHP使用RabbitMQ
    文档官网:https://www.rabbitmq.com/tutorials/tutorial-one-phpRabbitMQ关系说明:交换机:一个交换机可以有多个路由(routeKey),一个路由(routeKey)可以绑定多个队列。在发布消息的时候指定交换机对应的路由(routeKey),即可对应到该路由(routeKey)对应的队列。队列:常驻内存监听进......
  • Windows部署rabbitmq
    本次安装环境:系统:Windows11软件建议版本:erlangOPT26.0.2rabbitmq3.12.4一、下载1.1下载erlang官网下载地址:1.2下载rabbitmq官网下载地址:建议使用解压版,安装版可能会在安装软件时出现查不到erlang环境的报错,导致安装失败。二、部署2.1部署erlang2.1.1安装http复制代码右键管......
  • RabbitMQ的解耦、异步、削峰是什么?
    RabbitMQ在分布式系统和微服务架构中起到了重要的作用,其特性可以实现解耦、异步以及削峰,下面是对这三个概念的详细解释:1.解耦解耦是指使系统的不同组件间的依赖关系减少或消失。在使用RabbitMQ时,生产者(发送消息的组件)和消费者(接收和处理消息的组件)不直接交互,而是通过消息队......
  • 如何通过 docker 搭建 rabbitMQ
    如何通过Docker搭建RabbitMQ?要了解如何通过Docker搭建RabbitMQ,关键步骤包括:安装并配置Docker环境、拉取RabbitMQ官方镜像、运行RabbitMQ容器、配置RabbitMQ环境。对于初次接触RabbitMQ和Docker的用户,首先应该了解Docker是一个开源容器平台,它可以使应用程序与底层系统分离开,轻松在......
  • Python三方库:Pika(RabbitMQ基础使用)
    https://www.cnblogs.com/-hz01/p/17985502  Python有多种插件都支持RabbitMQ,本文介绍的是RabbitMQ推荐的Pika插件。使用pip直接安装即可 pipinstallpika 。一、RabbitMQ简介1.MQ简介MQ(MessageQueue,消息队列),是一个在消息传输过程中保存消息的容器,多用在分布式系统之......
  • rabbitmq - 流量控制
    在helloworld的案例中,如果开启两个Receive,消息被平均发送给了2个Receive。很多情况下,我们并不希望消息平均分配,可以对代码做如下修改。场景:a侦听器处理快,b侦听器处理的慢,我们希望能将更多的消息分配给a。importcn.swsk.springboot.rgyx.jx.test.ConnectionUtil;impor......
  • rabbitmq - ack机制
    疑问:在写demo的时候,如果client被强制中断,消息来不及处理,这时候消息又出队列了,这样不是会产生严重的问题嘛?一个会话中,可以同时处理一批数据,如果一条失败了,之前的也要求回滚的话,要怎么处理?获取一个消息之后,发现程序无法处理这条消息,想要退还回去,该怎么办?方案:这就涉及到队......
  • RabbitMQ的原理和集成使用
    RabbitMQ是一个消息代理系统,支持多种消息传递协议,主要用于解耦和异步处理。作为AMQP(AdvancedMessageQueuingProtocol)协议的实现,它在现代分布式系统中有广泛应用,尤其在微服务架构中。以下是RabbitMQ的原理、组件、消息模型、应用场景和SpringBoot集成方法。一、R......
  • RabbitMQ如果有100万消息堆积在MQ,如何解决(消息堆积怎么解决)
    当生产者发送消息的速度超过了消费者处理消息的速度,就会导致队列中的消息堆积,直到队列存储消息达到上限。之后发送的消息就会成为死信,可能会被丢弃,这就是消息堆积问题。解决消息堆积有三种思路:增加更多消费者,提高消费速度在消费者内开启线程池加快消息处理速度扩大队列容积,......
  • RabbitMQ之Java客户端的使用
    一、前言RabbitMQ支持多种语言访问,本次介绍RabbitMQJavaClient的一些简单的api使用,如声明Exchange、Queue,发送消息,消费消息,一些高级api会在后面的文章中详细的说明。二、项目实战1.引入依赖<dependency><groupId>com.rabbitmq</groupId><artifa......