您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
 
   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
     
   
 订阅
  捐助
突发热点事件下微博高可用注册中心 vintage 的设计 & 实践
 
142 次浏览     评价:  
 2018-12-27
 
编辑推荐:

本文来自于infoq,文章介绍了微博高可用注册中心vintage的设计原则与方案,以及线上应用的最佳实践等。

当前微博服务化采用公有云+私有云的混合云部署方式,承载了每天百亿级的流量,vintage 作为微博微服务的注册中心,为管理 10w 级微服务节点以及在流量激增的情况下的服务快速扩缩容,面临了极大挑战。例如:复杂网络条件下 vintage 服务的高可用保障、解决大批量节点状态变更触发的通知风暴、异常情况下 vintage 节点的自适应和自恢复能力、vintage 多云部署场景下节点数据同步和一致性保障等。

vintage 3.0 优雅的解决了上述问题,具备了良好的扩展性,可用性达到 6 个 9。

一、突发热点对微博注册中心的要求与挑战

1.1 突发热点热点事件

突发热点是微博面临的最常见、最重要的挑战,左图显示的就是最近的一个热点事件,右图是当时热点发生时的流量图,我们可以看出热点事件发生时,在短时间内会引发微博流量的数倍增长。那么面对如海啸般的突发流量,如何应对就显得尤为重要。

根据峰值流量模型不同,应对策略多种多样,但通常总结为下面三种措施:

常备充足的 buffer:该方式更佳适用于可提前预测的流量高峰。如:双十一购物节,微博的春晚保障等。而极热事件往往都具备突发性,很难提前预料,并做好充足的准备。同时极热事件发生时的流量往往高于日常峰值的数倍,且不同极热事件之间流量峰值和流量模型不尽相同,因此也很难准确评估 buffer 的数量。

采用服务降级的方式,保障核心业务:通过对系统接口逻辑中,非核心业务的逐步剪枝,缓解核心接口整体压力,保障业务接口的功能运行及性能稳定,这类方式在很多年前是比较流行的。但此类方式通常会伴随系统功能受限,页面内容不完整等是用户体验下降的情况发生。另外如果在极端场景下,出现降无可降的情况,就非常尴尬。因此这种方法也不是我们目前最好的选择。

弹性扩容:为了克服前两种措施带来的不足,经过多年应对突发流量的经验积累,微博目前使用混合云的部署方式。通过对后端微服务资源的快速扩容,在短时间内迅速为整个系统构建起坚实的大坝。

1.2 突发热点事件对微博注册中心的要求与挑战

众所周知,微服务的运行必须依赖注册中心的支持。这就对微博注册中心提出了 4 点要求:

要支持每秒百级别以上的微服务扩容

秒级别的微服务变更通知延迟

能承载 10w+ 级别微服务节点

公司级多语言微服务注册 & 服务发现支持