首页 > 其他分享 >RabbitMQ的五种模式

RabbitMQ的五种模式

时间:2024-10-14 19:34:10浏览次数:7  
标签:队列 模式 交换机 RabbitMQ key 五种 路由 消息

一、五种模式详解
1.简单模式(Queue模式)
当生产端发送消息到交换机,交换机根据消息属性发送到队列,消费者监听绑定队列实现消息的接收和消费逻辑编写.简单模式下,强调的一个队列queue只被一个消费者监听消费.

1.1 结构

生产者:生成消息,发送到交换机
交换机:根据消息属性,将消息发送给队列
消费者:监听这个队列,发现消息后,获取消息执行消费逻辑
1.2应用场景
常见的应用场景就是一发,一接的结构
例如:

手机短信
邮件单发
2.争抢模式(Work模式)
强调的也是后端队列与消费者绑定的结构

2.1结构

生产者:发送消息到交换机
交换机:根据消息属性将消息发送给队列
消费者:多个消费者,同时绑定监听一个队列,之间形成了争抢消息的效果
2.2应用场景
抢红包
资源分配系统
3.路由模式(Route模式 Direct定向)
从路由模式开始,关心的就是消息如何到达的队列,路由模式需要使用的交换机类型就是路由交换机(direct)

3.1 结构

生产端:发送消息,在消息中处理消息内容,携带一个routingkey
交换机:接收消息,根据消息的routingkey去计算匹配后端队列的routingkey
队列:存储交换机发送的消息
消费端:简单模式 工作争抢
3.2应用场景
短信
聊天工具
邮箱。。
手机号/邮箱地址,都可以是路由key

4.发布订阅模式(Pulish/Subscribe模式 Fanout广播)
不计算路由的一种特殊交换机

4.1结构

4.2应用场景
消息推送
广告
5.主题模式(Topics模式 Tpoic通配符)
路由key值是一种多级路径。中国.四川.成都.武侯区

5.1结构

生产端:携带路由key,发送消息到交换机

队列:绑定交换机和路由不一样,不是一个具体的路由key,而可以使用*和#代替一个范围

* 字符串,只能表示一级
# 多级字符串

交换机:根据匹配规则,将路由key对应发送到队列

消息路由key:

北京市.朝阳区.酒仙桥
北京市.#: 匹配true
上海市.浦东区.*: 没匹配false
新疆.乌鲁木齐.#
5.2 应用场景
做物流分拣的多级传递.

标签:队列,模式,交换机,RabbitMQ,key,五种,路由,消息
From: https://www.cnblogs.com/loong3/p/18464863

相关文章

  • 从SQL Server过渡到PostgreSQL:理解模式的差异
    从SQLServer过渡到PostgreSQL:理解模式的差异 从SQLServer过渡到PostgreSQL:理解模式的差异前言随着越来越多的企业转向开源技术,商业数据库管理员和开发者也逐渐面临向PostgreSQL迁移的需求。虽然SQLServer和PostgreSQL共享许多数据库管理系统(RDBMS)的基本概念,但它们在处......
  • gaussdb 基础管理 数据库 表 用户 模式 权限 存储过程
    数据库database#创建数据库,指定字符集UTF8,缺省情况下新数据库将通过复制标准系统数据库template0来创建,且仅支持使用template0来创建。CREATEDATABASEdevdbENCODING'UTF8'template=template0;CREATEDATABASEtestdb;标识符的命名需要遵守如下规范:*标识符需要为......
  • 一键开启无敌模式!小缇娜的奇幻之地:无敌模式/技能立刻冷却/超级跳跃高度
    小缇娜的奇幻之地修改器风灵月影版是一款刺激好玩的第一人称游戏修改器,而且是风灵月影版本,完全免费,可以直接打开使用,非常便捷,十多项功能可以给玩家带来舒适的游戏体验,轻松享受游戏的乐趣,感兴趣的玩家,快来下载小缇娜的奇幻之地修改器风灵月影版吧!修改器地址:https://downfl.y......
  • rabbitmq 新下载链接
    Linux下安装RabbitMQ需要依赖socat和erlang插件环境1插件下载 1.1RabbitMQ下载下载地址一:https://www.rabbitmq.com/download.html下载地址二:https://packagecloud.io/rabbitmq/rabbitmq-server1.2Erlang下载Erlang的版本需要与RabbitMQ的版本匹配版本对应地址如下:http......
  • Nuxt3+PM2集群模式启动及勘误
    起因之前写过一篇Nuxt3的文章,Nuxt3环境变量配置,用到了PM2,但是里面的一些配置存在问题,最近有空又验证了一下,这里做一个勘误。问题PM2的启动配置中有一项是exec_mode,默认是fork,另一个可选值是cluster,fork是单进程模式,cluster是多进程模式,也就是常说的集群模式。最早开始......
  • Seata的AT模式执行流程
    Seata的AT模式是Seata的默认模式。总共分为几步1.登记分支先给每个要参与的服务(分支事务)登记一下,记录下它们是谁,要做什么。2.执行操作每个服务登记好后就开始执行自己的任务,执行前后记下每个服务操作前后的数据状态,以防万一需要回滚。3.检查结果等所有服务都执行完了,TC会......
  • Seata的AT模式的执行流程
    Seata的AT模式:AT模式是Seata的默认模式,也是一种最终一致的分阶段事务模式,在一阶段,Seata拦截业务SQL,解析SQL语义,找到要更新的业务数据,并保存快照数据和行锁‌。简单来说就是看中结果,结果需要符合业务实际逻辑步骤准备undo-log(数据快照),简单说就是建个数据库用于备份数据,谁需要备份......
  • Seata的AT模式的执行流程
    AT模式是解决分布式事务的一种方式AT模式与XA模式都是分阶段提交的事务模型,弥补了XA模型中资源锁定周期过长的缺陷,企业基本都用。1.AT模式基本流程图:阶段一RM的工作:注册分支事务记录undo-log(数据快照)执行业务sql并提交报告事务状态阶段二提交时RM的工作:删除undo-log即......
  • 什么是分布式事务?使用Seata有哪些解决方案?Seata的AT模式的执行流程
    什么是分布式事务?简单来说:在分布式系统中出现的事务问题,称为分布式事务。为什么会出现分布式事务:一个分布式事务流程图在这个业务中有3个数据库连接,就没有办法做到全局的事务控制。这就是分布式事务问题分布式事务产生的情况有两种:​ 1.业务跨多个服务实现​ 2.业务跨多......
  • Seata的AT模式的执行流程
    在Seata的事务管理中有三个重要的角色:TC(TransactionCoordinator)-事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。TM(TransactionManager)-事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。RM(ResourceManager)-资源管理器:管理......