分布式系统SLA怎么做?

本文探讨了分布式系统中Server端和SDK端如何实现SLA(服务水平协议)。Server端通过RPC协议在请求处理出口处统计,SDK端利用DataCollector和apiTracer记录请求信息,并通过PeriodicThreadManager定时打印统计数据。SLA数据的展示则通过agent收集日志信息,聚合计算各个维度的指标。
分布式系统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相关的日志,进行聚合计算。统计粒度到每一个区间,包括延时区间,请求大小区间,平均值等。
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值