首页 > 其他分享 >MQ基础笔记

MQ基础笔记

时间:2023-04-18 23:47:24浏览次数:39  
标签:宕机 队列 基础 笔记 如何 MQ 消息 写库

一、MQ(消息队列):

1、本质:

MQ(message queue),本质是个队列,FIFO先入先出原则。在互联网架构中,MQ是一种常见的上下游“逻辑解耦+物理解耦”的消息通信服务。

 

2、优缺点:

(1)、优点:

1)、异步

不同的业务可以同时从消息队列中获取消息进行消费,实现异步处理。

2)、解耦

将一组处理流程的业务系统差分成多个子系统,使用消息队列作为缓冲,避免某一子系统发生故障造成整个处理流程异常,提升系统的可用性。

3)、削峰

将短时间大量并发请求作用于消息队列的缓冲中,避免数据库因并发量过大而宕机。

(2)、缺点:

1)、系统可用性降低:

MQ宕机,导致系统崩溃,如何保证消息队列的高可用?

2)、系统复杂度提高:

如何保证消息没有重复消费?如何处理消息丢失的情况?如何保证消息传递的顺序性?

3)、数据一致性问题:

不同消费者进行写库操作,当存在某消费者写库失败时,导致数据不一致问题,如何保证不同消费者消费同时成功?

 

3、区别与适合场景:

注:技术实力较为一般,技术挑战不是特别高,用RabbitMQ;基础架构研发实力较强,用 RocketMQ;大数据领域的实时计算、日志采集等场景,用Kafka。

标签:宕机,队列,基础,笔记,如何,MQ,消息,写库
From: https://www.cnblogs.com/Iven-L/p/17331682.html

相关文章

  • 4月18日笔记
    今天完成了空调调节温度、风速也面的设计。学会了如何添加一个小图标。我们在添加一个已经扣完图的小图标时,尽管已经扣的很干净了但是依旧会在图表外又一层灰色的背景,这时,我们只需要将背景设为透明就可以。通过android:background="#0000"这样我们就可以得到一个干净的图标。......
  • 【THM】Python Basic(Python基础)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/pythonbasics本文相关内容:使用基于网络的代码编辑器,学习Python的基础知识,并将你的知识付诸实践。Python简介在本文中,你将亲身体验并学习脚本编程语言Python,学会编程允许你创建一些安全工具以及创建脚本,这将帮助你......
  • Django笔记二十四之数据库函数之比较和转换函数
    本文首发于公众号:Hunter后端原文链接:Django笔记二十四之数据库函数之比较和转换函数这一篇笔记开始介绍几种数据库函数,以下是几种函数及其作用Cast转换类型Coalesce优先取值Greatest返回较大值Nullif值相同返回None1、model准备这一篇笔记我们主要用到Author......
  • 【uniapp】【外包杯】学习笔记day06 | 微信小程序导航栏的制作并推送的到码云【黑】
    先创建分支 格式化快捷键shift+alt+f ......
  • 【线程基础】【五】yield、sleep、wait方法的异同
    1 前言本节我们讲下Thread.yield()方法的作用,并对比下sleep()方法、wait()方法,看看三者有何区别。2 yield方法作用是:提出释放CPU时间片的请求,不会释放锁,主要知道它不会阻塞线程即可哈,平时我是没怎么用过哈。特点就是:(1)yield()方法只是提出申请释放CPU资源,至于能否成功释放......
  • 前端笔记
    HTML基础HTML基础11.HTML初识HTML指的是超文本标记语言(HyperTextMarkupLanguage)是用来描述网页的一种语言。HTML不是一种编程语言,而是一种标记语言(markuplanguage)标记语言是一套标记标签(markuptag)pink老师一句话说出html作用:网页是由网页元素组成的,这些元素......
  • 【线程基础】【二】线程的状态流转
    1 前言上节我们看了线程是如何创建启动的,那么启动以后线程怎么管理呢,这就要看我们线程的状态管理了,这节我们就来看看线程都有哪些状态以及什么操作下会驱使状态的变化流转。2 状态定义Java线程有6种状态定义在Thread的子类State,分别是NEW、RUNNABLE、BLOCKED、WAITING、TIM......
  • Node.js入门学习笔记
    NodeJs是js的运行时,意味着可以在浏览器外运行js。可以使用nodejs来构建服务器端应用、CLI应用、WebAPI,甚至用electron构建桌面端应用。使用nvm来管理node版本。在终端输入node进入REPL环境,可以测试和执行代码,mac系统使用control+d退出REPL环境。执行某个js文件:nodexxx.js......
  • 4.18 c++图形库easyx的基础编程
    头文件#include<graphcis.h>一基础绘图概念1.颜色用三原色表示RGB(红色部分,绿色部分,蓝色部分)每一部分的数值范围(0~255)。基本大写英文单词已对应例如BLUE蓝色2.窗口坐标的默认原点在左上角(0,0)x轴正方向向右,y轴正方向向下。二窗口函数initgraph(intwidth,intheigh......
  • 构建之法 阅读笔记02
    第四章两人合作4.1代码规范包括代码风格规范和代码设计规范4.2代码风格规范代码风格原则:简明、易读、无二异性缩进:4个空格,而不是TAB行宽:限定为100字符括号断行与空白的{}行分行命名:匈牙利命名法下划线:分隔变量名字中的作用域标注和变量语义大小写(Pascal形式和Camel......