
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
分布式编程开发随着互联网的不断发展而被越来越多的程序员掌握,今天我们就通过案例分析来简单了解一下,分布式编程应用需要注意哪些问题。
一、核心关键路径的汇聚和计算
一个服务内部的关键路径往往反映不了整个分布式系统延时的常态情况,这就需要将不同服务内部关键进行汇聚。这里的汇聚是按照时间段进行汇聚,这就需要collector收到数据后按照上传携带过来的时间点分到对应时间的窗口内,收集完成后进行各种延时指标的计算以及关键路径的汇聚,这里有三种汇聚方式:
1、节点关键路径汇聚
这里是将系统的关键路径拼接到一起,组成一条完整路径,将各个节点进行汇聚,选择出现次数多的路径作为“核心”的关键路径。
2、服务关键路径汇聚
节点关键路径是节点粒度的表示形态,然而在一个系统中服务的路径关系是怎样的呢?这就需要服务关键路径来表示。为了更好的表征服务内部的耗时情况,对节点进行聚合抽象。将所有计算型节点统一归为一个叫inner的节点,作为起始节点,其他访问外部服务的节点不变,在重新转换后的路径中选择出现次数多的路径作为服务关键路径,聚合后的路径可以标识服务“自身”和“外部”的延时分布情况。
3、平铺节点类型汇聚
这部分主要是对于核心路径比较分散的子节点,例如B中B1访问B3/B4/B5等多个下游(在实际的系统中可能有数十个节点出现在关键路径中,但是没有一个节点有绝对的核心占比,各个节点在关键路径中相对比较分散,且经常周期性改变),对这种情况直接统计并筛选出核心占比>x%(x%根据特定需求进行确定,x越小则收集到的关键节点越精细)的节点,需要注意的是这里是平铺取的节点,并不是一条“核心”的关键路径。
二、核心关键路径的存储和展示
数据库存储的是计算好的结果,以时间、用户类型、流量来源等作为查询关键字,方便进行多维度分析。这里使用OLAPEngine进行存储,方便数据分析和查询。
展示的内容主要有以下几部分:
核心占比:节点出现在关键路径中的概率
核心贡献度:节点出现在关键路径中时,自身耗时占整个路径总耗时的比例
综合贡献度:核心占比和核心贡献度两者相乘,作为综合衡量的标准
均值:节点耗时的平均值
分位值:节点耗时的不同分位值。分位值是统计学中的概念,即把所有的数值从小到大排序,取前N%位置的值即为该分位的值,常用的有50分位、80分位、90分位等
核心占比高贡献度很低或者贡献度高占比很低的节点优化的效果往往不是很显著,因此使用综合贡献度做为核心占比和核心贡献度的综合考量,这个指标高的节点是我们需要重点关注的,也是优化收益较大的。
从耗时优化的角度出发,这里有两个主要的诉求,一个是查询某个时间段的关键路径,依此来指导进行特定节点或阶段的优化。另一个是需要进行关键路径的对比,找到diff的节点,挖掘具体的原因来进行优化,整体延时的退化往往是由于特定节点的恶化造成的,这里的对比可以是不同时间、不同地域、甚至是不同流量成分的对比,这样为延迟分析提供了多维度的指导依据。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。