首页 > 其他分享 >中间件【消息中间件选型】

中间件【消息中间件选型】

时间:2023-11-02 09:46:28浏览次数:27  
标签:中间件 吞吐量 RabbitMQ Kafka 选型 丢失 消息中间件 日志 消息

一、作用

       异步化提升性能、系统间解耦、流量削峰。

二、类型

       ActiveMQ、RabbitMQ、Kafka以及RocketMQ这四大类。

       2.1、ActivwMQ

                目前不活跃,前几年用的比较多,故略去。

       2.2、Kafka

              【优点】:

  1. Kafka最大优势就在于高吞吐量,在普通机器4CPU8G的配置下,一台机器可以抗住十几万的QPS,这一点还是相当优越的。
  2. Kafka的性能很高,发送消息过去基本都是毫秒级别的。
  3. 支持集群部署,如果部分机器宕机不可用,不影响Kafka的正常使用。

              【缺点】:

  1. Kafka有可能会造成数据丢失。在收到消息后,并非直接写到物理磁盘,而是先写入到磁盘缓冲区。
  2. 功能比较的单一 ,主要支持收发消息,高级功能基本没有,会造成适用场景受限。

               【业界使用】:

             业界一般将kafka用来处理用户的行为日志的采集的传输,用在大数据团队较多。有的公司使用他就只是用来收发消息这种的场景,如用户行为日志等。因为,可以接受数据的丢失,而且要求吞吐量要极高。

               关键字:高吞吐量、功能单一、数据可能丢失

          2.3、RabbitMQ

                  【优点】:

  1. 能保证数据不丢失。
  2. 能保证高可用,部分机器宕机了还可以继续使用。
  3. 支持很多高级功能,如消息重试、死信队列。

                 【缺点】:

  1. 吞吐量比较低,大概在每秒几万的样子,这样像对于大型电商促销秒杀就不能胜任。
  2. 集群线性扩展比较麻烦。
  3. 开发语言是erlang,懂得人不是很多,无法对其改造。

          2.4、RocketMQ

                  阿里巴巴开源的消息中间件,各方面也表现的比较优越,几乎同时解决了Kafka和RabbitMQ它们两个的缺点。

                 【优点】:

  1. 吞吐量很高,大概普通机器有十万QPS往上。
  2. 保证高可用,高性能。       
  3. 保证数据绝对不丢失。
  4. 支持大规模集群部署,线性扩展方。
  5. 支持各种高级的功能,如延迟消息、消息回朔。
  6. java语言开发,满足了国内绝大部分公司技术栈。

三、选择对比

       1、如果我们业务只是收发消息这种单一类型的需求,而且可以允许小部分数据丢失的可能性,但是又要求极高的吞吐量和高性能的话,就直接选Kafka就行了,就好比我们公司想要收集和传输用户行为日志以及其他相关日志的处理,就选用的Kafka中间件。

       2、如果自己所处公司业务比较平稳,未来几年内不会出现飞速发展,而且没有什么改源码的特殊需求的话,在面对选择MQ的时候就可以选用RabbitMQ。毕竟如今这样的中小公司也就是这么干的。

      3、如果自己所处公司发展迅猛,一年经常搞一些特别大的促销秒杀活动,公司技术栈主要是Java语言的话,就直接一步到位选择RocketMQ,这样会省很多事情。

四、整体选项对比    

         

 

标签:中间件,吞吐量,RabbitMQ,Kafka,选型,丢失,消息中间件,日志,消息
From: https://www.cnblogs.com/xiaobaicai12138/p/17804666.html

相关文章

  • 1A肖特基二极管选型,选什么型号好?
    1A正向电流肖特基二极管常用型号,有哪些呢?之前科普过正向电流5A的肖特基二极管相关知识,接下来,肖特基二极管厂家东沃电子带您走进正向电流1A肖特基二极管的世界。1A正向电流肖特基二极管典型型号查阅东沃电子肖特基二极管产品库可知,东沃1A肖特基二极管典型型号有:1)DO-41封装肖特基二极......
  • 选型CRM客户管理系统的几个步骤
     CRM系统采购负责人,一般都是企业临时找的一位相对合适的人选,往往没有太多采购和部署系统的经验。但既然公司予以了重任就一定要将任务圆满完成,选择CRM客户管理系统分为几个步骤?创建需求文档选型CRM可以采用逆向思维,反向推理选择适合的系统,如希望达成的业务目标,什么功能可以促......
  • 记录一次前端表格选型过程
    客户需求:最近,接到一个客户项目,前期沟通时,客户说,我们日常基本都是使用Excel来做一些信息收集。但是每次收集信息时,都需要文件传来传去,十分麻烦。本来是想着用一些云文档,但是沟通下来领导层没通过,主要原因是:(1)内部文件安全级别高,信息不能托管在其它三方平台上,这就需要对云文档做私有......
  • Koa2 中后台返回字段由下划线改为驼峰的中间件
    //toHump.jsconsttoHump=async(ctx,next)=>{ctx.write=(obj)=>ctx.body=toHumpFun(obj)awaitnext()}functiontoHumpFun(obj){constresult=Array.isArray(obj)?[]:{}for(constkeyinobj){if(obj.hasOwnPr......
  • 规则引擎决策表选型对比
     名称框架使用复杂度web编辑界面开源友好使用指南活跃度核心使用方式优势劣势Drools高无ApacheLicensehttps://www.cnblogs.com/ityml/p/15993391.html https://www.jianshu.com/p/786f272d3db2https://blog.csdn.net/xushiyu1996818/article/details/126025301......
  • 嵌入式硬件中常见的100种硬件选型方式
    1请列举您知道的电阻、电容、电感品牌(最好包括国内、国外品牌)。电阻:美国:AVX、VISHAY威世日本:KOA兴亚、Kyocera京瓷、muRata村田、Panasonic松下、ROHM罗姆、susumu、TDK台湾:LIZ丽智、PHYCOM飞元、RALEC旺诠、ROYALOHM厚生、SUPEROHM美隆、TA-I大毅、TMTEC泰铭、TOK......
  • 如何使用中间件
    1.注册varbuilder=WebApplication.CreateBuilder(args);varapp=builder.Build();app.Map("/test",asyncappbuilder=>{appbuilder.Use(async(context,next)=>{context.Response.ContentType="text/html";......
  • 自定义中间件 middleware
    文件夹的创建1、在项目或者应用下创建一个任意名称的文件夹2、在该文件夹下创建一个任意名称的py文件3、在该py文件中写自定义的中间件(这个类必须继承MiddlewareMixin)然后在这个类里面就可以自定义五个方法了 (这五个方法并不是全部都需要书写,用几个写几个)中间件......
  • CRM系统如何选型?
     不少企业都想要使用CRM客户管理系统,但往往在CRM选型阶段就被折腾的五迷三道。CRM系统选型难在哪里?下面我们从企业用户和CRM厂商两方面进行分析,来说说关于CRM系统选型的那些事。企业自身原因:1、认知偏差看到一个观点,SaaS软件的选型趋势,正在从高管选型转变为全员选型。不管是......
  • 企业CRM系统选型时的一些建议
     随着市场环境的变化,越来越多的企业有了使用CRM客户管理系统的需求。市面上那么多的CRM品牌,我们该如何选择呢?下面我们就来说说企业CRM系统选型时的一些建议。1、明确自身需求企业要厘清使用CRM的目的:是遇到了只有CRM才能解决的问题还是通过CRM进行销售流程管理。不少企业在选......