了解消息中间件的基础知识

news2024/9/19 10:37:03

为什么要使用消息中间件?

  1. 解耦:消息中间件可以使不同的应用程序通过解耦的方式进行通信,减少系统间的依赖关系
  2. 提供异步通信:消息中间件可以实现异步消息传递,提高系统的响应性能。
  3. 流量削峰:消息中间件可以起到流量削峰的作用,将短时间内的爆发式流量存储在消息队列中,使系统能够平稳地处理请求
  4. 解决分布式系统数据传输的需求:如分布式场景下的websocket支持。

消息中间件的缺点

  1. 降低系统可用性: 如果消息中间件出现故障或挂掉,那么使用它的应用程序也会受到影响,导致系统整体可用性降低。
  2. 降低系统稳定性: 网络故障可能会导致消息丢失(主要发生在RabbitMQ),消息重复,甚至出现脏数据,影响系统的稳定性。
  3. 引入分布式一致性问题: 在分布式系统中,各个节点之间通信可能会出现延迟,导致数据在各个节点之间不一致。
  4. 提高系统复杂性: 引入消息中间件后,系统需要考虑的问题会增多,例如消息的顺序性、消息的可靠性、消息的持久性等,这会增加系统的复杂性。

常用的MQ对别

在这里插入图片描述
对别总结:

  • ActiveMQ:非常成熟,功能强大,在业内大量的公司以及项目中都有应用偶尔会有较低概率丢失消息而且现在社区以及国内应用都越来越少,官方社区现维护越来越少,几个月才发布一个版本而且确实主要是基于解耦和异步来用的,较少在大规模吞吐的场景中使用。
  • RabbitMq:erlang语言开发,性能极其好,延时很低;吞吐量到万级,MQ功能比较完备而且开源提供的管理界面非常棒,用起来很好用社区相对比较活跃,几乎每个月都发布几个版本分在国内一些互联网公司近几年用rabbitmq也比较多一些但是问题也是显而易见的,RabbitMQ确实吞吐量会低一些,这是因为他做的实现机制比较重。而且erlang开发,国内有几个公司有实力做erlang源码级别的研究和定制?如果说你没这个实力的话,确实偶尔会有一些问题,你很难去看懂源码,你公司对这个东西的掌控很弱,基本职能依赖于开源社区的快速维护和修复bug。而且rabbitmq集群动态扩展会很麻烦。其实主要是erlang语言本身带来的问题。很难读源码,很难定制和掌控。
  • RocketMQ:接口简单易用,而且毕竟在阿里大规模应用过,有阿里品牌保障日处理消息上百亿之多,可以做到大规模吞吐,性能也非常好,分布式扩展也很方便,社区维护还可以,可靠性和可用性都是ok的,还可以支撑大规模的topic数量,支持复杂MQ业务场景而且一个很大的优势在于,阿里出品都是java系的,我们可以自己阅读源码,定制自己公司的MQ,可以掌控,社区活跃度相对较为一般,不过也还可以,文档相对来说简单一些,然后接口这块不是按照标准JMS规范走的,有些系统要迁移需要修改大量代码,还有就是阿里出台的技术,你得做好这个技术万一被抛弃,社区黄掉的风险,那如果你们公司有技术实力我觉得用RocketMQ挺好的.
  • Kafka:kafka的特点其实很明显,就是仅仅提供较少的核心功能,但是提供超高的吞吐量,ms级的延迟,极高的可用性以及可靠性,而且分布式可以任意扩展同时kafka最好是支撑较少的topic数量即可,保证其超高吞吐量而且kafka唯一的一点劣势是有可能消息重复消费,那么对数据准确性会造成极其轻微的影响,在大数据领域中以及日志采集中,这点轻微影响可以忽略这个特性天然适合大数据实时计算以及日志收集。

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

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

相关文章

vue项目实现table表格竖向

先上图 思路:使用element ui 自带的栅格,通过控制el-col 的span 属性来设置每行展示多少行(竖着的字段),超过就自动换行; content1 是表头 content2是返回的数据 getTable()函数是将返回的正常数据进行处理…

SQL12 高级操作符练习(2)

描述 题目:现在运营想要找到学校为北大或GPA在3.7以上(不包括3.7)的用户进行调研,请你取出相关数据(使用OR实现) 示例:user_profile iddevice_idgenderageuniversitygpa12138male21北京大学3.423214male复旦大学4.03…

【SpringMVC】工作流程入门案例的使用

目录 一、什么是SpringMVC 二、SpringMVC的请求流程 三、SpringMVC的优点 四、Spring MVC的主要组件 五、SpringMVC常用注解 六、入门案例演示 6.1.添加pom.xml 6.2.创建spring-mvc.xml 6.3.配置web.xml 6.4.SpringMVC配置Web 6.5.JSP页面编写 七、扩展 7.1.Spring…

全科医学科常用评估量表汇总,建议收藏!

根据全科医学科医生的量表使用情况,笔者整理了10个常用的全科医学科量表,可在线评测直接出结果,可转发使用,可生成二维码使用,可创建项目进行数据管理,有需要的小伙伴赶紧收藏! 日常生活能力量表…

HarmonyOS Codelab 优秀样例——溪村小镇(ArkTS)

一、介绍 溪村小镇是一款展示溪流背坡村园区风貌的应用,包括园区内的导航功能,小火车行车状态查看,以及各区域的风景展览介绍,主要用于展示HarmonyOS的ArkUI能力和动画效果。具体包括如下功能: 打开应用时进入启动页&a…

白灯和黄灯哪个对眼睛好?那些专家推荐的护眼灯

随着电子产品普及,虽然给我们生活带来了很多便利,不过也因此有不少人用眼过度导致近视。尤其是孩子,如今不少小孩小小年纪就戴上了眼镜,究其原因,除了繁重的课业还有户外运动的缺失、环境光照的不足、用眼卫生和习惯的…

SpringMVC系列(一)之SpringMVC入门详细介绍

一. SpringMVC简介 Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发&a…

Android Studio的笔记--aidl实现和调用

android AIDL接口使用 aidl实现新建aidl实现工程build.gradleproguard-rules.pro增加aidl文件 增加aidl实现aidl实现服务打开aidl服务 aidl使用新建aidl使用工程增加aidl文件使用aidl方法 相关回显 aidl实现 新建aidl实现工程 新建一个工程。工程名testaidl。包名com.lxh.tes…

第 3 章 栈和队列 (使用线性链表和队列实现银行业务模拟)

1. 背景说明 该模拟业务基于时间线来确定,当事件发生时,通过插入升序链表来模拟时间线记录事件发生时间、类型,类似于记事本,由于 时间是单向的,正好符合队列的先进先出特性,类似于我们生活中的排队行为。…

小程序类找茬游戏开发:创造富有挑战性和娱乐性的游戏体验

小程序找茬游戏是一种受欢迎的益智娱乐游戏,玩家需要在两幅几乎相同的图片中找出差异。这种类型的游戏结合了观察力和注意力,提供了有趣的挑战。在本文中,我们将讨论如何开发小程序找茬游戏,以及关键特点和开发流程。 小程序找茬…

初露头角!Walrus入选服贸会“数智影响力”数字化转型创新案例

9月5日,由北京市通信管理局、工业和信息化部新闻宣传中心联合主办的“企业数字化转型论坛”在2023中国国际服务贸易交易会期间召开,论坛以“数字化引领 高质量发展”主题,旨在探讨信息技术如何与各行业深度融合,构建数字化转型新格…

C++vector模拟实现

vector模拟实现 1.构造函数2.拷贝构造3.析构赋值运算符重载4.iterator5.modifiers5.1push_back5.2pop_back5.3empty5.4insert5.5erase5.6swap 6.Capacity6.1size6.2capacity6.3reserve6.4resize6.5empty 7.Element access7.1operator[]7.2at 8.在谈reserve vector官方库实现的是…

SpringBoot整合Redis,基于Jedis实现redis各种操作

前言&#xff08;三步教你学会redis&#xff0c;主打一个实用&#xff09; springboot整合redis步骤&#xff0c;并基于jedis对redis数据库进行相关操作&#xff0c;最后分享非常好用、功能非常全的redis工具类。 第一步&#xff1a;导入maven依赖 <!-- springboot整合re…

C++之智能指针shared_ptr死锁问题(二百)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Hadoop生态圈中的Flume数据日志采集工具

Hadoop生态圈中的Flume数据日志采集工具 一、数据采集的问题二、数据采集一般使用的技术三、扩展&#xff1a;通过爬虫技术采集第三方网站数据四、Flume日志采集工具概述五、Flume采集数据的时候&#xff0c;核心是编写Flume的采集脚本xxx.conf六、Flume案例实操1、采集一个网络…

卫星地图-航拍影像-叠加配准套合(ArcGIS版)

卫星地图-航拍影像-叠加配准套合(ArcGIS版) 发布时间&#xff1a;2018-01-17 版权&#xff1a;BIGEMAP 第一步 工具准备 BIGEMAP地图下载器&#xff1a;Bigemap系列产品-GIS行业基础软件kml\shp 相关教程&#xff1a;CAD文件直接导入BIGEMAP进行套合配准&#xff08;推荐&am…

苹果笔不用原装可以吗?苹果ipad触控笔推荐

很多小伙伴在纠结&#xff0c;是否要购买apple pencil呢&#xff1f;但它的价格太过昂贵&#xff0c;很多学生党都消费不起。答案是不一定的要入手apple pencil的。市面上也是有做得相当不错的平替电容笔。现在无纸化已经快成为我们生活中的一部分&#xff0c;它不仅是可以书写…

新网站怎么优化才能提升排名-彻底解决新网站没收录和排名的问题

新网站怎么优化才能提升排名&#xff1f;辛辛苦苦搭建起网站后&#xff0c;却不知如何优化网站提升排名&#xff0c;也没有一个完整的思路和策略&#xff0c;今天做为行业资深SEO的我&#xff0c;来为大家理清SEO思路&#xff0c;彻底解决新网站没收录和排名的问题&#xff01;…

网站不收录没排名降权怎么处理-紧急措施可恢复网站

网站降权对于SEO人员来说是非常致命的打击&#xff0c;因为网站一旦被搜索引擎降权&#xff0c;排名会严重地下降&#xff0c;网站的流量也会大幅下降&#xff0c;直接影响到收益。而且处理不好的话会导致恢复的时间周期无限拉长&#xff0c;所以网站被降权后我们要第一时间采取…

8月客户文章盘点——累计IF 168.4,平均IF 8.42

客户文章一览 凌恩生物以打造国内一流生物公司为目标&#xff0c;在科研测序领域深耕不辍&#xff0c;吸纳多名在生物信息高级技术人员的加盟&#xff0c;参与并完成多个高科技项目。现已在宏组学、基因组、表观遗传以及蛋白代谢等多组学及联合分析领域积累了深厚经验&#xff…