您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

关于消息队列的优缺点,看这篇就行

时间:2019-09-02 14:19:14  来源:  作者:

来源:https://dwz.cn/y8GDcqOh

在项目中为什么要使用消息队列

消息队列使用场景主要有三个:

解耦,异步,削峰

1、解耦

关于消息队列的优缺点,看这篇就行

 

如上图所示,可能存在某一个系统产生关键数据,所有系统都需要其进行提供数据,导致A系统与要提供数据系统产生耦合,系统拓展,其他系统的需求修改都会导致A系统产生修改。

关于消息队列的优缺点,看这篇就行

 

2、异步

关于消息队列的优缺点,看这篇就行

 

如果用户一个点击,需要几个系统间的一系列反应,同时每一个系统肯都存在一定的耗时,那么可以使用mq对不同的系统进行发送命令,进行异步操作。

关于消息队列的优缺点,看这篇就行

 

3、削峰

关于消息队列的优缺点,看这篇就行

 

主要是如果存在用户使用的高峰期,例如存在大量的请求访问数据库(MySQL每秒2000个请求),超过就会卡死,我们使用MQ作为类似于缓冲区的作用,高峰取时在MQ中进行大量请求积压,处理器按照自己的最大处理能力取请求量,等请求期过后再把它消耗掉。

关于消息队列的优缺点,看这篇就行

 

消息队列有什么缺点

1、系统的可用性降低:很多服务都依赖于MQ,一旦MQ故障,系统崩溃。

2、系统变的复杂,序列考虑问题变多:发送消息重复,多了,乱序,丢掉。

3.、一致性问题:系统A给BCD发送,只有都成功才返回成功,结果BC成功,但是D失败,但是返回页面结果是成功。

每一个MQ都有什么异同和适用场景

ActiveMQ

最早大家都用ActiveMQ,但是现在确实大家用的不多了,没经过大规模吞吐量场景的验证,社区也不是很活跃,单机吞吐量,万级,吞吐量比RocketMQ和Kafka要低了一个数量级,响应为ms级别,有较低的概率丢失数据。

RabbitMQ

单机吞吐率万级,吞吐量比RocketMQ和Kafka要低了一个数量级,但是适合于中小型企业,因为自带了友好的监控和维护界面,社区相对比较活跃,几乎每个月都发布几个版本分,在国内一些互联网公司近几年用rabbitmq也比较多一些,但是问题也是显而易见的,RabbitMQ确实吞吐量会低一些,这是因为他做的实现机制比较重,同时语言在国内很少有人会。

RocketMQ

单机吞吐量10万级,RocketMQ也是可以支撑高吞吐的一种MQ,topic可以达到几百,几千个的级别,吞吐量会有较小幅度的下降,这是RocketMQ的一大优势,在同等机器下,可以支撑大量的topic,可用性非常高,分布式架构,在阿里大规模应用过,有阿里品牌保障,日处理消息上百亿之多,可以做到大规模吞吐,性能也非常好,分布式扩展也很方便,源码是JAVA

Kafka

单机吞吐量10万级别,这是kafka最大的优点,就是吞吐量高。一般配合大数据类的系统来进行实时数据计算、日志采集等场景。topic从几十个到几百个的时候,吞吐量会大幅度下降。

所以在同等机器下,kafka尽量保证topic数量不要过多。如果要支撑大规模topic,需要增加更多的机器资源,可用性非常高,kafka是分布式的,一个数据多个副本,少数机器宕机,不会丢失数据,不会导致不可用。



Tags:消息队列   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
消息队列是在两个进程之间传递二进制数据的一种简单有效的方式。每个数据块都有一个特定的类型,接收方可以根据类型来有选择地接受数据,而不一定像管道和命名管道那样必须以先...【详细内容】
2020-08-20  Tags: 消息队列  点击:(64)  评论:(0)  加入收藏
今天,就讲讲解决消息队列的数据积压的三个方案。 1 概述最近生产环境的消息通知队列发生了大量的数据积压问题,从而影响到整个平台商户的交易无法正常进行,最后只能通过临时关...【详细内容】
2020-08-07  Tags: 消息队列  点击:(80)  评论:(0)  加入收藏
作者:趁你还年轻转发链接:https://segmentfault.com/a/1190000022950333前言看到这些词仿佛比较让人摸不着头脑,其实在我们的日常开发中,早就和它们打过交道了。我来举几个常见...【详细内容】
2020-06-18  Tags: 消息队列  点击:(91)  评论:(0)  加入收藏
熟悉Apache 大数据开发技术栈的朋友都知道 Kafka 在大数据开发中的作用,所以面试中会遇到相关问题。这个问题问的非常好,所以有必要记录一下。对从事大数据开发的工程师来...【详细内容】
2020-06-16  Tags: 消息队列  点击:(465)  评论:(0)  加入收藏
一、简单的发送与接收消息 HelloWorld1. 发送消息发送消息首先要获取与rabbitmq-server的连接,然后从渠道(chann)中指定的queue发送消息 , 不能定义两个queue名字相同,但属性...【详细内容】
2020-04-03  Tags: 消息队列  点击:(61)  评论:(0)  加入收藏
索引: 基于list的实现方式 基于publish/subscribe 实战消息队列简介消息队列:是消息的顺序集合。 比如网站的PV统计和查看,传统方式就是每个页面发一个AJAX然后mysql给PV+1。用...【详细内容】
2020-01-02  Tags: 消息队列  点击:(85)  评论:(0)  加入收藏
最近小L会听到很多学员说,在面试大型互联网公司的时候,很可能会被问到消息队列的问题: 在何种场景下使用了消息中间件? 为什么要在系统里引入消息中间件? 如何实现幂等?链式调...【详细内容】
2019-11-20  Tags: 消息队列  点击:(87)  评论:(0)  加入收藏
Redis以内存数据库而闻名。但是,某些系统将它用作消息队列管理工具。Pub/Sub 和 RPOPLPUSH 是用于实现这样一个系统的两组命令。在这篇文章中,我将分享一些关于这两个命令集的...【详细内容】
2019-11-14  Tags: 消息队列  点击:(111)  评论:(0)  加入收藏
在互联网中,我们常常讲究着唯快不破,相信不少人都有这样的经历,明明一个非常简单的需求,但却要修改非常多的系统,导致开发效率低下,从而不停的加班。一个好的程序员,一定要学会设计...【详细内容】
2019-09-10  Tags: 消息队列  点击:(156)  评论:(0)  加入收藏
来源:https://dwz.cn/y8GDcqOh在项目中为什么要使用消息队列消息队列使用场景主要有三个:解耦,异步,削峰1、解耦 如上图所示,可能存在某一个系统产生关键数据,所有系统都需要其进...【详细内容】
2019-09-02  Tags: 消息队列  点击:(191)  评论:(0)  加入收藏
▌简易百科推荐
本文分为三个等级自顶向下地分析了glibc中内存分配与回收的过程。本文不过度关注细节,因此只是分别从arena层次、bin层次、chunk层次进行图解,而不涉及有关指针的具体操作。前...【详细内容】
2021-12-28  linux技术栈    Tags:glibc   点击:(3)  评论:(0)  加入收藏
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(2)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(10)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(20)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(25)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条