美文网首页
别纠结了,教你如何做 ------消息中间件选型分析

别纠结了,教你如何做 ------消息中间件选型分析

作者: 中间件 | 来源:发表于2019-01-21 16:46 被阅读0次

消息中间件选型分析

目录

一、概述   

       什么是消息中间件?

二、消息队列的使用场景  

       为什么使用消息队列?

       消息队列有什么优缺点?

三、目前流行的消息队列优缺点对比

四、总结     

一、概述   

       什么是消息中间件?

消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中的一个重要组件,有着举足轻重的地位。个人感觉比价场景应用核心的有三个:解耦、异步、削峰。

二、消息队列的使用场景  

       为什么使用消息队列?

其实这个话题也是面试官经常问询的问题,问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么

期望的一个回答是说,你们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用MQ可能会很麻烦,但是你现在用了MQ之后带给了你很多的好处

现在你可以下想想你如何回答上述问题,想不起来?  好吧我这里先介绍几个常见使用场景,提醒下。。。

A系统发送个数据到BCD三个系统,接口调用发送,那如果E系统也要这个数据呢?那如果C系统现在不需要了呢?现在A系统又要发送第二种数据了呢?A系统负责人濒临崩溃中。。。再来点更加崩溃的事儿,A系统要时时刻刻考虑BCDE四个系统如果挂了咋办?我要不要重发?我要不要把消息存起来?头发都白了啊。。。

这是你需要去考虑一下你负责的系统中是否有类似的场景,就是一个系统或者一个模块,调用了多个系统或者模块,互相之间的调用很复杂,维护起来很麻烦。但是其实这个调用是不需要直接同步调用接口的,如果用MQ给他异步化解耦,也是可以的,你就需要去考虑在你的项目里(做过微服务项目的同学这里是不是考虑下  消息总线 搭配Rabbitmq 做解耦 用于广播配置文件的更改或者服务间的通讯?),是不是可以运用这个MQ去进行系统的解耦。在简历中体现出来这块东西,用MQ作解耦。

异步:现场画个图来说明一下,

A系统接收一个请求,需要在自己本地写库,还需要在BCD三个系统写库,自己本地写库要3ms,BCD三个系统分别写库要300ms、450ms、200ms。最终请求总延时是3 + 300 + 450 + 200 = 953ms,接近1s,用户感觉搞个什么东西,慢死了慢死了。

更改为 异步后当消息发送到消息队列  自行让对应系统进行消费即可  所以给用户的体验为20 + 5 = 25ms  ,快 好快!

削峰:每天0点到11点,A系统风平浪静,每秒并发请求数量就100个。结果每次一到11点~1点,每秒并发请求数量突然会暴增到1万条。但是系统最大的处理能力就只能是每秒钟处理1000个请求啊。。。尴尬了,系统会死。。。

高级java免费课程:https://ke.qq.com/course/131889?flowToken=1006149

全套java资料领取QQ: 514683544

相关文章

  • 别纠结了,教你如何做 ------消息中间件选型分析

    消息中间件选型分析 目录 一、概述 什么是消息中间件? 二、消息队列的使用场景 为什么使用消息队列?...

  • 消息中间件选型分析

    消息中间件选型分析 有很多网友留言:公司要做消息中间件选型,该如何选?你觉得哪个比较好?消息选型的确是一个大论题,...

  • 消息中间件选型分析

    有很多人问过我这么一类问题:RabbitMQ如何确保消息可靠?很多时候,笔者的回答都是:说来话长的事情何来长话短说...

  • 2019-03-06

    消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局 本文收录于InfoQ,未经允许不得转载。 欢迎...

  • RabbitMQ消息确认、消息持久化等核心知识总结

    本文参考石杉的架构笔记公众号, 总结了一下RabbitMQ的核心知识, 非常感谢 一、消息中间件选型 1. Act...

  • 消息中间件选型

    目前开源的消息中间件可谓是琳琅满目,能让大家耳熟能详的就有很多,比如 ActiveMQ、RabbitMQ、Kafk...

  • 单元测试之embedded-kafka

    在项目中,团队也使用了Kafka作为消息中间件。 经过了嵌入式redis选型的问题之后,笔者在嵌入式kafka选型...

  • RabbitMQ指南之一:"Hello World!"

    为什么要使用MQ消息中间件?它解决了什么问题?关于为什么要使用消息中间件?消息中间件是如何做到同步变异步、流量削锋...

  • RabbitMQ指南之一:"Hello World!&

    为什么要使用MQ消息中间件?它解决了什么问题?关于为什么要使用消息中间件?消息中间件是如何做到同步变异步、流量削锋...

  • 聊聊消息中间件选型

网友评论

      本文标题:别纠结了,教你如何做 ------消息中间件选型分析

      本文链接:https://www.haomeiwen.com/subject/pfocjqtx.html