架构设计(消息队列)

news2024/11/17 14:34:03

架构设计(消息队列)

             

                

                                

消息队列

           

发送者将消息发送到topic,消费者从topic中拉取消息进行消费

                  

         

发送端消息发送方式

同步发送:消息发送后,需要等待消息发送响应结果,发送失败可重试
异步发送:消息发送后,立即返回,不需要等待消息发送结果,broker异步通知发送结果
单向发送:消息发送后,立即返回,不需要等待消息发送结果,也没有回调函数通知结果

           

消费端消息消费

# 消费端消息消费失败可以重试
同组消费者:同一个group的消费者分担消费消息,消费的消息不同
不同组消费者:同一个topic可以被多个消费者组订阅,不同组的消费者订阅的消息相同

            

                   

                                

应用场景

         

服务解耦:如果服务调用不需要等待获取结果,可使用消息队列将同步调用变成异步调用

                  

# 使用消息队列将同步调用变成异步调用,可提升服务吞吐量(tps)
服务a:消息发送端,将消息发送到topic后,不需要等待服务b处理完成,可立即返回
服务b:订阅消息队列中的topic,拉取消息进行消费

            

流量削峰:系统在面对极端流量时,可使用消息队列存储消息

                  

                                

                                

注意事项

      

消息积压

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Numpy入门[17]——数组广播机制

Numpy入门[17]——数组广播机制 参考: https://ailearning.apachecn.org/NumPy广播机制 使用Jupyter进行练习 NumPy 中的广播机制(Broadcast)旨在解决不同形状数组之间的算术运算问题。我们知道,如果进行运算的两个数组形状完全相…

linux网络编程epoll详解

目录epoll原理解析epoll提供的接口epoll的触发模式epoll原理解析 从socket接收网络数据说起: 1、网络传输中,网卡会把接收到的数据写入内存,网卡向 CPU 发出一个中断信号,操作系统便能得知有新数据到来,再通过网卡中断…

第二证券|行业重磅白皮书发布,超高清视频产业规模剑指3万亿

在5G和超高清交融开展的布景下,下流使用需求有望迸发,超高清视频工业前景可观。 超高清工业规模有望突破3万亿 据报道,12月1日,2022国际显现工业大会分论坛——新式显现超高清主题论坛在成都举行。论坛上,中国电子信息…

文本编辑器vi--常用命令查阅版(记得收藏)

一.为何要学习vi   # 所有的UNIX-like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在;   # 很多软件的编辑接口都会主动调用vi;   # vim具有程序编辑的能力,可以主动地以字体颜色辨别语法的正确性,方…

双元科技过会:计划募资6.5亿元,比亚迪和蜂巢能源为主要客户

近日,上海证券交易所披露的信息显示,浙江双元科技股份有限公司(下称“双元科技”)获得科创板上市委会议通过(即IPO过会)。接下来,双元科技将提交注册。 据贝多财经了解,双元科技于20…

关于天干地支及其计算

以天干地支计算日期是我国悠良的传统文化,最近在看如何计算人的生辰八字,写了个程序,但是只能算年的干支,月、日的干支计算方法太复杂了,望之只能却步,还是乖乖去查万年历比较好。这里记下关于干支的一些东…

[附源码]Python计算机毕业设计Django框架的资产管理系统设计与实现

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

[附源码]Python计算机毕业设计SSM京津冀区域产学研项目管理信息系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

50、IO流

*学习的难点:要知道在什么情况,该用什么流 补:ANSI码就是gbk码 一、基本概念: 1、什么是文件: 文件是保存数据的地方 2、文件流: 文件在程序中是以流的形式来操作的 (1)流&am…

XXL-Job海量数据处理-分片任务实战

文章目录一、需求1. 场景2. 分析3. 案例二、什么是分⽚任务2.1. 分⽚路由策略2.2. 海量数据处理2.3. 分片数量2.4. 分片值颁发2.5. 案例三、解决思路3.1. 数据拆分3.2. 分片数量3.3. 分⽚⽅式3.4. 路由策略3.5. 程序实战一、需求 1. 场景 有⼀个任务需要处理100W条数据&#…

【JavaScript 逆向】极验四代无感验证码逆向分析

前言 四代无感验证码相较于滑块验证码区别就是没有底图,一键通过模式,所以不需要轨迹以及计算缺口距离,步骤更少,四代滑块可以阅读:【JavaScript 逆向】极验四代滑块验证码逆向分析 声明 本文章中所有内容仅供学习交…

C++最后一次实验及实验总结

忙活了大半个学期,终于学完了C,虽然很基础,但是至少算是写完了实验,开心~~ 实验一 实验二 实验三 实验四 实验五 实验六 题目一 一、分析下面的程序,写出其运行时的输出结果。上机运行该程序,观察运行…

[附源码]计算机毕业设计ssm新能源电动汽车充电桩服务APP

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

ROS action客户端和服务端通信(Ubuntu )

ROS action客户端和服务端通信 gcusms ROS 一般都是用 service 和 topic 进行数据之间的交互传输,因为这种通信方式无法满数据实时反馈的要求,所以采用 action 动作消息反馈通信机制(实时反馈的任务进度,并且可以随时终止运行&am…

用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (6)-在线调试

AWPLC 目前还处于开发阶段的早期,写这个系列文章的目的,除了用来验证目前所做的工作外,还希望得到大家的指点和反馈。如果您有任何疑问和建议,请在评论区留言。 1. 背景 AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源…

vuex学习记录

为什么要用vuex 由于vue本身的特点。及页面是由多个组件构成。而组件又呈现一个二叉树状态。然后父向子需要进行通信。那如果是非父子关系,应该如何传值呢? 什么是vuex 专门为vue.js应用程序开发的状态管理模式。它采用集中式存储管理数据&#xff0c…

详解 Go 语言中的 init () 函数

阅读目录Go init 函数的详细说明包初始化Go init 函数的详细说明 初始化每个包后,会自动执行 init()函数,并且执行优先级高于主函数的执行优先级。 init 函数通常用于: 变量初始化检查 / 修复状态注册器运行计算 包…

c语言零基础入门(完整版)

1软件下载 官网下载: https://sourceforge.net/projects/orwelldevcpp/ 百度网盘:https://pan.baidu.com/s/1mhHDjO8 提取密码:mken 推荐用百度网盘,官方下载太慢了 开始安装 首先双击打开刚刚下载的软件 点击0k 因为在安装过程中不能使用…

【计算机视觉】图像形成与颜色

图像形成与颜色 光照及阴影 辐射度学 颜色 颜色信息反映了入射光的能量分布与波长,可见光的波长在400nm到760nm之间。 RGB RGB分别代表三个基色(R-红色、G-绿色、B-蓝色),如(0,0,0)表示黑色、(255, 255, 255)表示白色。其中2…

TS装饰器bindThis优雅实现React类组件中this绑定

初学React类组件时,最不爽的一点应该就是 this 指向问题了吧!初识React的时候,肯定写过这样错误的demo。 import React from react; export class ReactTestClass extends React.Component {constructor(props) { super(props); this.state …