网站弹出式链接后台怎么做seo代码优化
消息队列是什么
消息队列:Kafka、RocketMQ、RabbitMQ等
腾讯云CMQ消息队列介绍是这么说的:
腾讯云消息队列(Cloud Message Queue,以下简称 CMQ)是分布式的消息队列服务,用于存储进程间传输的消息,为分布式部署的不同应用之间或者一个应用的不同组件之间提供基于消息的可靠的异步通信服务。。
干什么
发送端把信息交给接收端,但发送端和接收端不同步会导致发送失败。进阶的版本是将信息交给服务器,等待服务器响应,但是仍然存在弊端:例如,当网络状况不好时,发送端的请求可能会丢失;当服务器端处理时间过长,可能导致接收端长时间等待以致请求超时而失败等。
队列在发送端和接收端之间起到缓冲作用。发送端发送的信息交给消息队列,由消息队列转交给接收端。
优缺点
优点:
解耦,异步,削峰
解耦:
我们想象一个场景:A想把东西交给B,可以直接给,但是这样呢,需要两个人必须达到统一,否则A到了而B不在家的状况,要么等待,要么A等待重新发送,二者关联性很强,但是A将东西交给邮局,由邮局交送给B,那么A就可以解放自己了。消息队列就充当这个邮局的角色
异步:
上面我们抽象出一个邮局,那么假如我们想添加部分功能呢,或者将送到邮局的部分再次细化,整体的流程变长,每个流程都需要时间,用户下单的等待时长大大增加,这是不利的。但如果我们将其余功能交由消息队列处理,时间大幅度降低。
削峰:
临近节日邮局打算来一场“八折寄件,包装全免”的活动,吸引了大批人前来。每条路线承载能力有限,面对大量邮件,我们通常会选择找个地方存放,慢慢处理,尽管这样的处理速度相对收到订单立刻分配线路发送慢一些,但是可以保证出错,崩溃的概率降低。消息队列就类似于一个可以存储信息的临时存放所,一条条交给各部分去处理。
缺点:
系统可用性降低:
增加消息队列本身就是不断添加工具的过程,我们将信息都给邮局,如果邮局崩溃了,关门了,那么我们所有依赖消息队列的功能至少在短时间内都会废掉。
复杂性提高:
我们将邮件交给邮局处理,邮局负责调用抵扣优惠券功能,分配地址等功能,我们把地址给邮局的时候自己确保没问题,但是邮局在将收货地址交给分配地址功能的时候,能一定保证该信息一定正确吗。在这个过程中复杂性逐步提高
数据一致性:
消息队列中处理的问题中设计分布式服务,分布式服务本身涉及到该问题,用户下单了付款了,但是如果没有存储积分怎么办,怎么保证,我们可以将所有的功能封装到一个事务中(事物具有原子性:一个失败全部失败),以此来确保整个流程。
什么时候用(作用)
最根本的就是记住:解耦,错峰,异步
通常大厂使用较多,适用于大场景,实时性较高的,比如淘宝这种