• 云时代架构读后感(三)


    阿里游戏高可用架构设计实践

    原文地址:https://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=2651660980&idx=1&sn=640c3d2280d7657f236434ff6ba0b22b&scene=21#wechat_redirect

    这篇文章文章主要是对游戏架构的设计,因为作为一名游戏玩家,都是非常注重游戏体验的,如果在游戏过程中出现不能登录,或者掉线的情况,很多人可能会投诉。初始可能人们都会认为是运维的原因,可能是硬件太差,或者是运维的经验不足等问题。但是人们往往忽略了研发方面的问题,没有从根本的设计方案上去思考解决问题。根本原因还是系统设计方案有问题,也就是说,技术上是比较弱的。

    作为一个好的游戏,高可用性是必要条件,那为了提高可用性,就要有一个良好的架构。在阿里游戏的高可用架构上来看,总体架构分为了四层。包括用户层,网络层,服务层和运维层。

    在用户层的设计方案是错误重试的方案,如果向服务器1的请求错误,那就重新请求服务器2,首先使用传统的DNS,如果出错则改用HTTP-DNS。还有就是要做业务分离,因为游戏中有些业务是不被玩家重视,所以分为重视业务和非重视业务,这样做的好处,假设非核心业务系统出现故障,它并不影响核心业务系统,因为它们之间是通过接口调用的,并不共享相同的资源。

    为了解决全局单点、跨机房同步时延的问题设计了异地多活体架构,这个新架构和老架构相比。最大的特点1、业务层数据同步2、二次读取3、可重复生成全局唯一数据

    运维层,主要实现的是360度监控,整体方案从上到下分为五层:业务层、应用服务层、接口调用层、基础组件层、基础设施层。

    1业务层:就是我们业务上的打点,根据这些打点进行机型统计或者分析;

    2、应用服务层:简单来说就是我们url的一个访问情况;

    3、接口调用层:就是我们自己系统对外部依赖的那些接口的访问情况,比如A系统调用B系统的一个接口,在A系统里统计或者监控调用B系统接口的情况,包括时延、错误次数之类;

    4、基础组件层:其实就是我们使用的一些组件,包括MySQL等;

    5、基础设施层:就是最底层的,包括操作系统、网络、磁盘、IO这些设备。

    整个监控是分层的,在我们出现问题的时候,定位问题需要的关键信息全部包括在这里面的。

    自动化的监控方案,是实时采集分析而来,整个流程非常低效,从生产网到办公网的网速很慢为了能够快速处理这个故障,我们进行了详细的分析,把真正出故障的时候要关注哪些信息、关注哪些指标,都通过预先的日志采集、计算、分析完成,放在那里等我们要处理故障或者问题的时候,直接看就可以了。

    每一层的指标,都通过一个系统可视化展现出来。比如,今日的访问量、今日的正确率、最近一分钟的平均响应时间、错误率。整个系统的状态一目了然,基本上识字就能够看懂整个系统的状态。

  • 相关阅读:
    Objective-C 学习记录--toches、Motion/Size/Rect/Point/CGFloat/protocol
    Objective-C 学习记录6--dictionary
    Objc基础学习记录5
    第四篇:web之前端之jquery
    第三篇:web之前端之JavaScript基础
    第二篇:web之前端之css
    第一篇:web之前端之html
    第三篇:杂项之年终总结
    第二篇:杂项之图像处理pillow
    第一篇:杂项之pymysql连接池
  • 原文地址:https://www.cnblogs.com/wys-373/p/10647279.html
Copyright © 2020-2023  润新知