大型在线实时应用解决方案

前言:

各家互联网公司每年都有印有自己图腾的重大活动,例如天猫的双十一、京东的六幺八、芒果TV的跨年晚会等。这些活动不仅会带来流量的激增,同时活动的成败也几乎决定了产品线研发运维人员的荷包收益。所以每当这种大型在线实时应用活动到来时,公司都会提前一个月组成临时战斗小组全力研究各种解决方案,本文我就基于自己的理解从宏观上进行分析和讲解。

1全链路监控解决方案

全链路监控是最重要也是时间维度上最先要进行的工作,从客户端接收到服务请求到http层经过哪些服务节点的跳迁,到提供服务的API依赖了哪些Paas层的组件,再到web服务和Pass层组件落到了哪些Iaas层实例上,只有捋清楚它们的关系,才有条件做链路的分析和优化。

全链路监控的目的是为了做到3个“有”:

1.1事前有预案

经过监控分析后发现风险所在,提前准备各种风险出现时的解决方案。

1.2事中有手段

只有预案还不够,因为活动中可能会发生各种不可预测的问题,需要提前准备好脚本、工具等批量操作手段,当危机爆发时可以最快速度进行处理。

1.3事后有分析

活动结束后进行复盘,积累经验,修正不足,为来年的活动做知识储备。

2全链路压测解决方案

这里特别强调的是一定是对真实生产环境进行压测,因为只有对接真正的活动当天的服务器资源、数据库资源、Redis和MQ资源等才能真实的评估出全链路的性能情况,才能有针对性的去进行补足。

全链路压测的难点在于数据挡板,也就是说如何避免压测数据污染到生产数据,一般常用的手段是影子表和影子请求,当压测结束后直接将影子表删掉就好。

3服务器高可用解决方案

服务的可靠性我们可以划分为4个等级:

3.1 单点故障

这个很好理解,不必多说

3.2 异机容灾

比单点好一点,不能解决机房停电、光纤挖断等带来的服务不可用

3.3 异地多活

最常用的可靠性等级,对服务器进行多个地区的部署,属于云平台的标准功能,土豪可以搭建异地的IDC

3.4 混合云异地多活

这个应该是目前可靠性最高的解决方案,在不同云厂商不同的地区都部署服务,只要地球不毁灭服务器就不会出问题。当然这种设计的成本也是巨大的,冗余的云实例、网络专线、跨云的数据交互中心等,都需要投入真金白银。

4应用高可用解决方案

每个服务节点前面已经介绍过如何做到高可用性,这里的应用高可用性主要针对整个服务调度网络来说的,不能因为个别应用出现问题而影响到整个任务链,需要做好服务降级和熔断的备案。

5重点保护/高级护航

首先要找到活动中自己的核心服务,例如芒果跨年晚会,核心服务就是视频直播、会员注册、充值这3个,因为这三个服务里有一个出现问题,那跨年活动就失去了意义。剩下的弹幕啊、节目评论啊、蓝光啊出现点问题是可以接受的。

找到这些重点保护服务后就要启动高级护航了,例如抽调全公司最强的技术人员组成专家组、付费对外寻求support、从战略合作伙伴那里获得技术支持等。目的只有一个,不管发生任何事情,我的重点服务不允许出现故障,这是本次大型活动的底线。

发布了168 篇原创文章 · 获赞 184 · 访问量 41万+

猜你喜欢

转载自blog.csdn.net/yejingtao703/article/details/100525641