一、为什么需要消息队列(MQ)
主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。大量的请求到达访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。核心:异步处理、流量削峰、应用解耦
二、应用场景
异步处理,流量削峰,应用解耦,消息通讯四个场景
异步处理
流量削峰
应用解耦
消息通讯
在消息通讯中主要有两种形式,也就是消息队列的两种消息模式
点对点模式
发布订阅模式
三、衡量指标
我们从服务性能、数据存储、集群结构三个方面去对比,选择适合自己项目的消息中间件
这个地方只能截图,所以不是很清晰,
而消息队列这方面,这是最常用的一些技术,而除这些之外,早期主流的消息中间件,包括ZeroMQ在内,虽然API丰富,本身很成熟,但是在高并发、大数据环境下的性能不够出色,主要适用于中小型项目,有较低的概率丢失数据,最主要是的,官方现在维护的频率一直在降低,好几个月才发布一个版本。所以一般用在长期维护的项目中
上面这些图谱可能有点看不清楚,没关系,清楚的来了
需要这份xmind图的,关注+转发后,私信“资料”即可查看获取方式
那对于这些比较新的技术该怎么准备呢?给大家推荐一份资料,联合上面的思维导图同步进行学习
目录
为什么要用消息队列
消息协议
RabbitMQ
ActiveMQ
kAFKA
RocketMQ
需要这份文档资料的,关注+转发后,私信“资料”即可查看获取方式
网友评论