消息队列做技术选型被为难?只要你知道这些,选型没压力

一、为什么需要消息队列(MQ)

主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。大量的请求到达访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。核心:异步处理、流量削峰、应用解耦

二、应用场景

异步处理,流量削峰,应用解耦,消息通讯四个场景

异步处理

消息队列做技术选型被为难?只要你知道这些,选型没压力_第1张图片

流量削峰

消息队列做技术选型被为难?只要你知道这些,选型没压力_第2张图片

应用解耦

消息队列做技术选型被为难?只要你知道这些,选型没压力_第3张图片

消息通讯

在消息通讯中主要有两种形式,也就是消息队列的两种消息模式

点对点模式

消息队列做技术选型被为难?只要你知道这些,选型没压力_第4张图片

发布订阅模式

消息队列做技术选型被为难?只要你知道这些,选型没压力_第5张图片

三、衡量指标

我们从服务性能、数据存储、集群结构三个方面去对比,选择适合自己项目的消息中间件

这个地方只能截图,所以不是很清晰,

消息队列做技术选型被为难?只要你知道这些,选型没压力_第6张图片


而消息队列这方面,这是最常用的一些技术,而除这些之外,早期主流的消息中间件,包括ZeroMQ在内,虽然API丰富,本身很成熟,但是在高并发、大数据环境下的性能不够出色,主要适用于中小型项目,有较低的概率丢失数据,最主要是的,官方现在维护的频率一直在降低,好几个月才发布一个版本。所以一般用在长期维护的项目中

上面这些图谱可能有点看不清楚,没关系,清楚的来了

消息队列做技术选型被为难?只要你知道这些,选型没压力_第7张图片

需要这份xmind图的,关注+转发后,私信“资料”即可查看获取方式

那对于这些比较新的技术该怎么准备呢?给大家推荐一份资料,联合上面的思维导图同步进行学习

目录

消息队列做技术选型被为难?只要你知道这些,选型没压力_第8张图片

为什么要用消息队列

消息队列做技术选型被为难?只要你知道这些,选型没压力_第9张图片

消息协议

消息队列做技术选型被为难?只要你知道这些,选型没压力_第10张图片

RabbitMQ

消息队列做技术选型被为难?只要你知道这些,选型没压力_第11张图片

ActiveMQ

消息队列做技术选型被为难?只要你知道这些,选型没压力_第12张图片

kAFKA

消息队列做技术选型被为难?只要你知道这些,选型没压力_第13张图片

RocketMQ

消息队列做技术选型被为难?只要你知道这些,选型没压力_第14张图片

 关注公众号:Java架构师联盟,每日更新技术好文

部分资料已经上传到我的git仓库中:有需要的可以下载

https://gitee.com/biwangsheng/mxq

你可能感兴趣的:(java,后端,程序员,消息队列)