异步烧脑业务场景
source link: https://www.zenlife.tk/%E5%BC%82%E6%AD%A5%E7%83%A7%E8%84%91%E4%B8%9A%E5%8A%A1%E5%9C%BA%E6%99%AF.md
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
异步烧脑业务场景
2016-04-29
有个分布式下的业务场景大概是这样子:节点收到客户端请求后,将消息发到多个副本节点,待收到若干副本回复以后,再返回给客户端。
肯定不能对到来的请求一个个串行服务,对吧,吞吐不可接受。于是来一个请求后节点都会记下session id,并行地执行很多客户端的请求,等收到足够多副本节点的回复以后回调一个函数,根据session来回复客户端。
这个业务还有个特点,只有leader节点会服务客户,副本节点不会,leader可能会切换。
于是一个bug出现了:有时候客户端永远得不到回复。为什么呢?发个请求到leader,处理请求期间leader切换了,新的leader上并没有那些session信息。
大概你会说,可以这么做呀:原leader在丢失身份的时候,需要返回错误给客户端,告诉它自已服务不了这次请求了。
好吧,我承认我简化场景了。实际是这样的,原leader中排队中的请求,它们可能会执行,也可能不会。假设失去身份之前消息已经同步到了新的leader节点了,消息就会执行。
郁闷的是,不能简单地返回客户端:不知道执行没有。因为这样子返回,客户端可能重试,而重试不是幂等的操作,会破坏业务。
这个业务还有一个蛋疼的,它要处理的某一种请求正好就是切换leader!你大概猜到了,明显又是大坑。执行了这个请求,那些还在排队中的请求要怎么搞?
额...很委屈的说,已经是简化很多后的场景了!
Recommend
-
43
-
52
一次性进群,长期免费索取教程,没有付费教程。 教程列表见微信公众号底部菜单...
-
25
尽管量子计算已经成为了当前的一项研究热门,但是对于普通人来说,想要理解它的工作原理,并不是一件容易的事情。好消息是,为了让大家深入浅出地学习量子比特,IBM特地制作了一款名叫《HelloQuantum》的烧脑游戏。上个月的时候,该游戏的iOS版本已经率先发布。现...
-
61
算法 - @mathzhaoliang - **问题之一**:有 12 枚外表一模一样的硬币,其中一枚是假币,其余都是真币。假币的重量与真币不同,但是更重还是更轻不知道。给你一个没有砝码和刻度的天平,最少称几次才能找出假币?**问题
-
35
一直以来,我们都不知道为什么 深度神经网络 的损失能降到零,降到零不代表着全局最优了么?这不是和一般 SGD 找到的都是局部极小点相矛盾么?最近 CMU、清华和 MIT 的研究者分析了深层全连接网络和残差网络,并表示使用梯度下降训练过...
-
33
如果匹诺曹说“我的鼻子要变长了”,那么他的鼻子会变长吗
-
59
《蛇它虫》是今年微信公开课上官方公布的2018首批6...
-
22
编写业务代码的时候常常会遇到判断,面对各种业务场景,你知道最优方案吗? 让我们看看基本情况: 初级:if else else if一把梭干就完事 中级:switch case、if else、多态、用设计模式包装 高深:清晰所有判断条件的边界,用解释性强且合
-
27
-
25
4 道题目,5 万名选手参赛,两天两夜,只有 1.5 万人交卷。半个月前,第二届阿里巴巴全球数学竞赛的第一轮预选赛难倒了许多人。 到了 3 月 21 日...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK