解密微博红包:架构、防刷、监控和资源调度( 二 )

解密微博红包:架构、防刷、监控和资源调度

文章插图
 

解密微博红包:架构、防刷、监控和资源调度

文章插图
 
如上图所示,完善的监控系统,为微博红包顺利度过春晚提供了很好的保障 。主要涉及的监控如下:
1、应用层接口响应时间监控
通过实时的分析access log日志,以HTTP code和响应时间维度实时统计出接口的状态和性能,根据占比来查看接口的健康程度 。
2、服务层各模块性能监控
在模块中记录开始时间和结束时间,每次处理完计算出模块的耗时,通过这种方式很好的发现各个模块是否正常 。
3、网络层监控
微博红包的出口网络是一个单独的App池,出口带宽使用到80%的时候网络稳定性就可能受到影响 。通过计算后端服务器输出计算出带宽,以便能够做到及时响应扩容 。
4、资源层的监控
对各种资源的监控,比如redis、MySQL、MC等资源的连接时间、状态和操作的实时统计分析,快速定位是否存在资源瓶颈 。
5、服务器的性能监控
通过运维监控系统,对服务器的CPU、内存使用情况,做到了能够观察每台服务器具体的运行情况 。
6、系统错误日志的监控
系统错误监控包括服务器负载,服务进程状态,资源连接,网络连接出现的问题,实时通过手机,邮件和私信知道 。为快速响应创造了条件 。
弹性资源管理和调度
1、故障的秒级切换
微博红包服务部署在了三个机房(包括云服务),任何一个机房如果出现网络或者其它不可预测的问题可以在几秒钟之内将服务切换到其它机房 。
2、资源的相互独立
资源的相互独立,让资源的可扩展性变得容易 。而且使得各个服务之间交叉影响达到了最小 。
3、引入阿里云做为第三机房,使用Docker快速部署服务
红包的核心服务主要分布在 2 个机房,两者互相做为灾难备份用途,为应对超预期的峰值,引入阿里云做为第三机房 。使用定制化的红包Docker快速部署服务来实现弹性调度架构 。通过Docker自动化操作大规模集群,进行弹性调度资源的任务,实现快速部署服务来应付超预期的峰值 。
系统的挑战和性能优化
为了保证用户体验,微博红包需要解决以下几个问题:
1.系统性能的可靠性
2.关键节点的可用性
3.如何应对突发热点
4.业务频繁迭代的处理
1、系统架构的升级
模块的独立化,避免出现模块间的相互影响 。
Nginx+lua的使用,使得服务器的QPS有了数量级的提升,同时服务器集群做到了秒级重启 。
2、修枝剪页
减少对于系统外部的依赖,梳理完整的调用关系图 。非核心功能使用异步调用,合并相关的调用,去掉重复的调用 。保证核心调用逻辑,避免非核心业务影响核心业务 。
3、多级缓存
服务端本地缓存,使用nginx本身缓存和服务器的L0缓存,来提升模块的响应速度,做到了90%以上核心接口的响应时间在50ms以内,减少了进程等待时间,提升了服务器的处理速度 。
一年一度的各大平台抢红包还会延续下去,这是一个斗智斗勇的过程,在服务器有限的情况下每一次与峰值的对抗都是对技术一次极大的挑战,每次挑战都是带来技术上的成长和收获 。

【解密微博红包:架构、防刷、监控和资源调度】


推荐阅读