消息队列常见的两种消费模式

一、点对点模式

点对点模式:生产者发送消息到消息队列,消费者从消息队列中接收、处理消息,消息被消费后,就不在消息队列中了。每个消息只能由一个消费者接收和处理。如果有多个消费者监听同一个队列,消息将被发送到其中一个消费者,而其他消费者无法接收到该消息。

特点:

         1. 每个消息只有一个接收者,消息一旦被消费,消息就会被从消息队列中移除。
         2. 发送者和接收者间没有依赖性,发送者发送消息之后,不管有没有接收者在运行,都不会影响到发送者下次发送消息。
         3. 具有消息确认机制,消费者可以确认消息的接收和处理状态,接收者在成功接收消息之后需向队列应答成功,以便消息队列删除当前接收的消息,如果消费者处理失败,消息可以被重新发送。

适用于:

一对一通信,例如任务分发、异步处理等。

二、发布订阅模式

在发布订阅模式中,生产者将消息发送到一个主题(Topic)。订阅该topic的消费者才可以接收到消息。一个主题可以有多个订阅者,每个订阅者都会接收到发布到该主题的消息。

特点:

        1. 每个消息可以有多个订阅者,所有订阅者都将接收到相同的消息副本。

        2. 布者和订阅者之间是解耦的,彼此不直接交互(发布者只关注自己发到哪个topic,订阅者从哪个topic获取消息)。订阅者可以动态地订阅或取消订阅主题,而不需要对发布者进行修改。

        3. 为了消费消息,订阅者需要提前订阅该角色主题,并保持在线运行;

适用于:

一对多通信,例如事件通知、广播等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/474215.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

刷题DAY29 | LeetCode 491-递增子序列 46-全排列 47-全排列 II

491 递增子序列(medium) 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如出现两个整数相等,也…

流畅的 Python 第二版(GPT 重译)(五)

第九章. 装饰器和闭包 有人对将这个功能命名为“装饰器”的选择提出了一些抱怨。主要的抱怨是该名称与其在 GoF 书中的用法不一致。 名称 decorator 可能更多地归因于其在编译器领域的用法—语法树被遍历并注释。 PEP 318—函数和方法的装饰器 函数装饰器让我们在源代码中“标记…

外包干了14天,技术退步明显。。。

先说一下自己的情况,本科生,2019年我通过校招踏入了成都一家软件公司,开始了我的职业生涯。那时的我,满怀热血和憧憬,期待着在这个行业中闯出一片天地。然而,随着时间的推移,我发现自己逐渐陷入…

NVIDIA Chat with RTX教程使用以及CUDA和CUDNN

基本环境安装:CUDA12.1CUDNNcudnn-windows-x86_64-8.9.7.29_cuda12-archive 1、CUDA下载 CUDA官方安装教程: https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html CUDA Toolkit的下载: CUDA Toolkit 12.1 Downloads | NVIDIA Dev…

Vue.js+SpringBoot开发高校宿舍调配管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能需求2.1 学生端2.2 宿管2.3 老师端 三、系统展示四、核心代码4.1 查询单条个人习惯4.2 查询我的室友4.3 查询宿舍4.4 查询指定性别全部宿舍4.5 初次分配宿舍 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的…

如何读懂Java GC日志

Java应用程序的GC日志对分析定位很多性能问题有着非常大的帮助。默认情况下,Java应用程序不会自动产生GC日志。如果需要输出GC日志,必须在JVM启动时增加对应的参数,场景的参数如表5-8所示。 2. GC日志分析一 例如,在Tomcat的JVM启…

【Spring Cloud】微服务注册中心的工作原理

SueWakeup 个人主页:SueWakeup 系列专栏:学习技术栈 个性签名:人生乏味啊,我欲令之光怪陆离 本文封面由 凯楠📷 友情提供! 目录 前言 1. 注册中心的主要作用 2. 常见的注册中心 3. Nacos 服务注册和发…

护眼大路灯哪个更适合学生?大路灯购选分享,经验总结!

在当前开节奏的生活领域中,作为测评师我观察到,大路灯作为一种新型照明的补光工具,逐渐被越来越多的人融入家庭生活中。这种设备无疑为用眼人群带来了显著的好处。但许多用户反馈中也频繁提及平时是眼睛疲劳感越来越严重等副情况,…

Java 学习和实践笔记(42):内部类(inner class)

内部类的两个要点: 1)内部类提供了更好的封装。只能让外部类直接访问,不允许同一个包中的其他类直 接访问。 2)内部类可以直接访问外部类的私有属性,内部类被当成其外部类的成员。但外部类 不能访问内部类的内部属性。| 注意&…

【开源】SpringBoot框架开发个人保险管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登录注册模块2.2 保险档案模块2.3 保险订单模块2.4 保险理赔模块 三、系统展示四、核心代码4.1 查询保险产品4.2 新增保险预定4.3 订单支付4.4 新增理赔单4.5 查询保险理赔 五、免责说明 一、摘要 1.1 项目介绍 基于J…

停车管理系统asp.net+sqlserver

停车管理系统asp.netsqlserver 说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 基于asp.net架构和sql server数据库, 功能模块: 停车管理系统asp.net sqlserver 用户功能有菜单列表 我的停车记录 专…

【解决】Unity Profiler | Sempaphore.WaitForSignal

开发平台:Unity 2022 版本以上 开发语言:CSharp 6.0 编程平台:Visual Studio 2022 关键词:Sempaphore.WaitForSignal   问题背景 开发过程中出现 Waiting to excute code… 长时间阻碍运行。使用 逐对象排查法 确认影响无法运行…

在离线的arm架构kylin v10服务器上使用Kuboard-Spray搭建K8S集群

在离线的arm架构kylin v10服务器上使用Kuboard-Spray搭建K8S集群 在内网项目中需要安装K8S集群,经过调研,选择使用Kuboard-Spray工具搭建K8S集群,降低学习成本,提高安装效率。 为了简化安装使用集群的过程,搭建了私有…

excel处理_多个excel文件合并

data文件夹内,有多个xls文件。每个xls文件格式一致, 表头占两行,表位汇总数据占一行。 表头两行,拼接前第二行设置为表头,且删除第二行。 在python读入的dataframe中,游轮成本表是表头,第一行是…

解密Mysql数据库引擎:探究其背后的神秘力量(二)

本系列文章简介: 在本系列文章中,我们将从MySQL的基础知识入手,逐步深入到数据库引擎的内部机制。我们将详细介绍MySQL中常用的几种数据库引擎,包括InnoDB、MyISAM等,分析它们的优缺点以及适用场景。同时,我…

[AutoSar]BSW_Com015 PDUR 模块配置

目录 关键词平台说明一、Abbreviations二、PduRBswModules三、PduRGeneration四、PduRDestPdus4.1 全局PDU ID和本地PDU ID 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector , EB芯片厂商TI 英飞凌编程语言C&#xff0…

亮数据Bright Data,跨境电商一站式解决方案

目录 一、跨境电商的瓶颈1、技术门槛2、语言问题3、网络稳定性4、验证码处理和自动识别5、数据安全6、法律法规 二、机不可失三、动态住宅代理1、网络代理2、动态住宅代理3、动态住宅代理的主要优点 四、动态住宅代理的使用场景五、如何使用亮数据动态代理1、开始使用2、添加新…

【C++】为什么vector的地址与首元素地址不同?

文章目录 一、问题发现:二、结果分析三、问题解析 一、问题发现: &vector和&vector[0]得到的两个地址居然不相同,对数组array取变量名地址和取首元素地址的结果是相同的。这是为啥呢? 使用下面代码进行验证:…

harbor迁移

采用从原仓库拉取镜像的方式 根据情况填,空的话,默认就是从原harbor的abc仓库拉到现harbor的abc仓库

termux安装

termux安装Python和postgres 安装python 安装pg数据库