消息队列解耦合

队列:

传统的串行化服务的缺点是

1、耦合性太强,(如果发生网络波荡,就会导致都失败)

2系统吞吐量不大,耗时多

传统的串行化服务的优点是:

系统结构简单,排查错误比较方便。

消息队列

消息只需要发送到消息队列上,成功就会返回成功,不用考虑后面的操作,之后的操作都是异步的操作

优点:解耦,提高性能

缺点:分布式事务解决方案

以一个淘宝订单的简单系统流程来展示,两者的区别:

事务:

只要涉及到消息队列,肯定是要处理事务问题,

事务:具有原子性,所有的动作要么都执行,要么都不执行

2、如何解决重复通知,一个服务订阅多个队列的问题:使用分布式锁

3、socket用于即时通讯。socket是长连接。

传统的http请求,随着服务端的返回给客户端消息,两者之间的关联就消失了,所以服务端想要主动联系客户端就得考轮询的方式,但是这种轮询比较耗费性能的,既要消耗客户端性能,又消耗服务器资源,于是有了长连接的概念。

服务端想要直接访问客户端:要通过轮询的方式

MQ的两种流派:

1、broker是一个中转站,为了将消息放到不同的队列里。

(1)消息来了主动进入放(2)等待消息请求

重topic

        必须有topic,

        kafka:全球消息处理性能最快的一款mq

        rocket mq:阿里内部的一个大神根据kafka手写的,性能稍逊于kafka,但功能比kafka多

轻topic

        可以没有topic,topic只是一种中转模式

        rabbitmq

2、无broker

zeromq没有使用broker,直接使用socket长连接

经典的消息队列堆积问题解决方案:

(1)增加消费者

(2)限流,先过滤掉一部分请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值