当前位置:首页> 自助建站新闻> 大型网站稳定性技术建设

大型网站稳定性技术建设

发布时间:2020-05-16 08:00:00

对于大型微服务系统,在复杂的服务逻辑和各种交互场景下,面对各种未知条件的变化,整个系统仍然能够正常、顺利地提供服务,具有稳定性。

影响系统稳定性的因素有很多,例如:

服务之间的依赖关系:服务缺陷导致其他依赖服务不可用;

业务逻辑变化:业务逻辑不断迭代演进,新旧服务不兼容;

流量激增:如在我们的促销活动中,流量突然增加,导致服务压力过大,达到服务能力上限,导致服务崩溃;

机器的非正常老化:任何机器,像人类一样,都有生、老、死。长期使用,会有磨损。因此,机器故障也是可能的异常。

还有其他各方面的因素,这里不会穷尽。你可以想想那些经典的影响因素。

稳定性通常用N 9来衡量。如表所示:

例如,一个系统网站的年稳定性达到4个9,这意味着年服务不可用时间小于或等于53分钟。

稳定性技术策略是本文研究的重点。从大的角度看,稳定的技术策略包括:监视、冗余、限流、降级、回滚、重试。

监控是指对整个系统服务的运行进行实时监控,准确反馈系统运行状态,及时发现异常故障,记录详细的日志和数据,提高故障检测、定位和解决的效率。从而提高系统服务的整体稳定性。

监测是确保稳定最基本的工作。我们将关注如何考虑监控?监控方向是什么?

监测可分为以下几类:

流量监控包括:PV、UV、IP、热页、用户响应时间。

这里没有详细说明这些基本交通指标。如果有不清楚的学生,他们可以找他们。

在流量监测中,需要注意:流量毛刺。流动毛刺通常代表系统的一个风险点或异常情况。

正常业务的流量趋势具有周期一致性的特点。例如,一个企业每天的交通高峰通常是中午12:00和下午18:00,所以这个高峰应该遵循高峰时间规则,没有特殊情况。那么什么是流动毛刺?如下图所示:

从图的左侧可以看出,8点钟时流量突然增加。此时,我们需要确认为什么流量突然增加。是正常的业务表现还是其他异常流量。

从图的右侧可以看出,每条曲线代表每天的流量统计。与其他日期的流量曲线相比,红色曲线在凌晨3:00和8:00有明显的流量毛刺,此时需要确认流量数据突变的原因。

通过观察流程毛刺,可以及时了解业务中的风险,并及时做出预警和准备。

业务监控是根据业务属性定义监控指标,用于判断整个业务是否正常运行。不同业务类型监控的指标必须不同,如电子商务场景、物流场景和游戏场景。

我们以一个电子商务交易业务系统为例,看看有哪些监控指标?您可以考虑您目前负责的业务指标。例如,对于电子商务交易系统,我们可以监控以下业务指标:

用户订单监控:秒/分/小时用户订单统计;

用户支付监控:秒/分/小时用户支付统计;

用户退款状态:秒/分/小时用户退款统计;

商品库存状态:库存消耗/剩余统计;

业务Gmv监控:业务整体销售统计;

商户在线状态:监控商户在线状态;

促销操作监控:监控促销金额和数量。

在业务监控方面,我们还需要关注业务转换漏斗的概念。流量漏斗显示服务转换率和用户的访问深度。它是对企业健康状况的监测,也是对一些需求效应的度量。如下图所示:

机器监控需要注意的内容应该是背景研发中熟悉的部分。主要监控方向包括以下几个部分

当然,在Linux系统中,收集这些数据有各种常见的指令:top、free、Ping、iostat、netstat。

对于Java系统,需要JVM级的监控内容,如:GC、线程创建与销毁、fullgc、不同的内存模块等,JVM还提供了指令集,方便我们查找jstat、JPS、stack、jmap、jhat等信息。

在原木的印刷过程中,需要注意原木的印刷规格。日志打印内容应包含故障排除的有用信息,日志格式清晰,分辨率高。日志一般打印在服务器磁盘上,但由于单个磁盘的容量有限,对于大型分布式系统,需要将不同服务器模块的日志作为一个整体进行收集,统一分析,提高故障排除的效率。此时,需要一个集中的日志中心。

日志中心的核心功能一般包括:获取日志、存储日志、显示日志、分析日志和报***务。

相对简单的实现可以使用elk快速构建自己的日志中心。

我们使用Kafka异步广播日志信息,然后分析日志,将其存储在ES检索系统中,并使用kibana检索和查看日志。进一步提高日志的有效管理。