分布式系统SLA怎么做?
分布式系统有自己的server端,也有提供给用户的SDK端,server端的SLA主要是给内部看的,外部使用用户看到的是SDK端呈现的SLA指标数据。
每个异常对应一个HTTP CODE。
每个请求一般要记录下:请求类型,请求大小,请求开始时间,请求latency,errcode, httpcode。
1. server端怎么实现
分布式系统server端的实现比较简单,接收SDK端传来的请求来做处理。分布式系统一般是通过rpc协议实现的,server端这边可以在某一个请求处理出口处进行统计。
2. SDK端怎么实现
一个数据收集类DataCollector:该类中的字段:请求类型,请求大小,请求开始时间,请求latency,errcode, httpcode。
一个apiTracer类,这个类在每个api入口处进行创建,开始记录数据,因为每个api会抛出异常,如果是异步请求的话,可以通过return code(RC)来计算。当收集完之后就放到一个总收集类中,这个总收集类定义为StatisticsMemory。
一个线程管理器PeriodicThreadManager,这个管理器会在用户new 一个SDK client的时候,也就是与后端建立连接的时候进行创建,线程是一个定时器,每隔多久就将StatisticsMemory中的数据打印出来。
3. 如何展示SLA数据
通过一个agent收集server端和SDK端的日志信息,抓取SLA相关的日志,进行聚合计算。统计粒度到每一个区间,包括延时区间,请求大小区间,平均值等。
本文探讨了分布式系统中Server端和SDK端如何实现SLA(服务水平协议)。Server端通过RPC协议在请求处理出口处统计,SDK端利用DataCollector和apiTracer记录请求信息,并通过PeriodicThreadManager定时打印统计数据。SLA数据的展示则通过agent收集日志信息,聚合计算各个维度的指标。

1090

被折叠的 条评论
为什么被折叠?



