System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种用于分布式计费日志回传的柔性反压方法技术_技高网

一种用于分布式计费日志回传的柔性反压方法技术

技术编号:41223296 阅读:3 留言:0更新日期:2024-05-09 23:42
本发明专利技术公开了一种用于分布式计费日志回传的柔性反压方法,涉及大数据云计算领域技术领域,包括以下步骤:S1、采集器接受上游应用系统写入的日志,并分发到各日志处理集群;S2、采集器根据历史发送记录,维护每个日志处理集群的状态:对于日志处理集群i,在收到预设量的日志或超时事件发生后,采集器对日志处理集群i发送日志,本次发送日志的速率r<subgt;si</subgt;为:本发明专利技术能够避免启停式反压机制对系统的冲击与雪崩风险,允许系统冗余度较低时也能快速恢复。

【技术实现步骤摘要】

本专利技术涉及大数据云计算领域,具体为一种用于分布式计费日志回传的柔性反压方法


技术介绍

1、日志为计算机系统响应特定输入时记录响应行为与请求信息的数据,可用于统计分析、定位异常以及计费等领域。采集并处理大规模日志一直是计算机系统领域的传统需求,如基于广泛应用的elasticsearch、logstash以及kibana组件构造的通用采集、处理以及展示方案。

2、不同于通用解决方案,细分领域要求更高性能,更可靠的日志采集解决方案,如计费或安全验证等领域。与通用日志采集场景相比,云计算领域中,大规模计费日志的特点如下:1.日志来源服务多样,覆盖范围大,与小规模内网互联的业务系统相比,大量节点遍布世界各地,通过互联网相连,人工管理困难,网络条件多样;2.日志准确性要求高,由于涉及计费业务,不允许出现大量重传、漏传;3.日志实时性要求强,用户需要近实时查询计费信息,并了解用量情况。

3、因此,对于计费日志回传业务,要求系统具有足够的鲁棒性,能够安全应对网络与设备的故障降级,保障计费业务的时效性与准确性。这基本上通过添加冗余处理能力实现。同时,在发生故障时,系统冗余能力降低,为了避免故障扩大化或因处理能力不足导致的数据丢失,需要主动和被动降低系统接入的日志量级,这种机制称为反压(backpressure),常见在开源的流处理方案中。如storm流处理系统,会通过中心化的zookeeper服务通知系统处于过载,通知上游worker停止传输。spark则使用pid控制器更新对处理速率的估计,并传递到上游环节中,而flink完全通过缓存满阻塞上游发送线程实现降低发送速率。这些处理框架的场景都针对数据中心内部的可靠传输环境,对于采集环节的反压没有做过多考虑。filebeat与logstash实现了采集环节的反压机制,filebeat通过tcp连接向logstash传输日志,而在logstash过载时,会返回一个特殊字节告诉filebeat暂停传输。

4、在商用方案中,这类基于阈值的启停式反压机制比较常见。如cn201010153026.1在系统过载时开始停止低优先级日志的传输。类似地,cn108073445b通过多个过载阈值的判断提供了多档传输速率,并通过中心化的zookeeper服务传递过载信息,降低输入端对系统的冲击。中心化的通知机制在分布式系统中存在诸多不便,因此cn112800017b使用了分布式代理服务器以分发过载信息,避免中心服务成为水平扩容的瓶颈,而cn113297323a则基于队列加锁阻塞,主动暂停写入。

5、启停式反压机制不可避免对系统会造成较大的冲击,在恢复时可能会造成反复的雪崩,因此部分方案也提出了协商式的反压机制。如cn114020712a在某一周期内传输的日志速率超过设定阈值后,中心处理服务会将期望传输速率分发到每个节点中,让节点自行丢弃多余日志限流。对于计费日志,丢弃是不可接受的,因此cn107135088a向采集端分发期待的日志速率阈值后,将多余日志积压在本地,待空闲时回传。以上方案是基于一个中心服务实例的情况,并且需要人工预先确定阈值,在中心故障时无法自动更新阈值,进而导致故障扩大化。


技术实现思路

1、本专利技术的目的是提供一种用于分布式计费日志回传的柔性反压方法,以解决现有技术中的启停式反压对系统的冲击,以及在柔性传输速率协商时依赖中心化服务下发限制速率的不足。

2、为了实现上述目的,本专利技术提供如下技术方案:一种用于分布式计费日志回传的柔性反压方法,包括以下步骤:s1、采集器接受上游应用系统写入的日志,并分发到各日志处理集群;s2、采集器根据历史发送记录,维护每个日志处理集群的状态:对于日志处理集群i,在收到预设量的日志或超时事件发生后,采集器对日志处理集群i发送日志,本次发送日志的速率rsi为:其中,ci为日志处理集群i的队列剩余容量,si为上次回传请求获得的网络传输速度,fi为传输比例因数,fi∈[0,1];rlimit为最大限制写入速度;因此,日志处理集群i处理能力rpi下降会导致其对外公布的队列剩余容量ci下降,因此会主动导致rsi下降,减少每次给该日志处理集群发送的日志数量,以维持rsi=rpi。

3、进一步地,所述日志处理集群具有健康检查接口或日志传输接口,健康检查接口用于返回该日志处理集群当前的队列剩余容量ci,日志传输接口用于接收处理传入的日志并返回该日志处理集群当前的队列剩余容量ci。

4、进一步地,通过定时健康检查和/或上次回传请求获得的队列剩余容量ci,若健康检查失败或回传请求失败,则使ci=0,直到下一次定时健康检查或回传请求时刷新。

5、进一步地,当日志处理集群检测到内部错误而需要退出服务,则拒绝一切回传请求,并返回ci=0。

6、进一步地,所述网络传输速度si由请求体大小除以请求响应时间获得。

7、进一步地,fi根据上次回传请求结果而更新,若请求成功,则fi=min(1,2×fi),若请求失败,则fi=max(0,0.5×fi)。

8、进一步地,采用http作为采集器和日志处理集群的交互协议,采集器将需要发送的一系列日志gzip压缩后填充在http的请求体中,若返回http200则代表处理成功,其余状态码或连接失败均判定为处理失败,日志处理集群能够将队列剩余容量ci填充在http响应体中。

9、进一步地,当采集到的日志数量较少时,在过了超时时间后则触发回传请求。

10、进一步地,将健康检查间隔与回传申请超时时间均设置在预设时间t,在预设时间t内至少对每一个日志处理集群发起一次健康检查或者回传请求。

11、在上述技术方案中,本专利技术提供的一种用于分布式计费日志回传的柔性反压方法,相比于现有技术而言,其优点为:1.无需人工介入调度和预先配置阈值等参数,可根据日志处理集群上报信息自主决策;2.避免启停式反压机制对系统的冲击与雪崩风险,允许系统冗余度较低时也能快速恢复;3.决策端下发到采集器,无需中心服务维护全局的日志处理集群状态与统计信息,降低系统复杂度,避免依赖单独的速率下发服务造成的单点故障或扩容瓶颈,保障计费日志的数据完整性和到达率。

本文档来自技高网...

【技术保护点】

1.一种用于分布式计费日志回传的柔性反压方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种用于分布式计费日志回传的柔性反压方法,其特征在于,所述日志处理集群具有健康检查接口或日志传输接口,健康检查接口用于返回该日志处理集群当前的队列剩余容量ci,日志传输接口用于接收处理传入的日志并返回该日志处理集群当前的队列剩余容量ci。

3.根据权利要求2所述的一种用于分布式计费日志回传的柔性反压方法,其特征在于,通过定时健康检查和/或上次回传请求获得的队列剩余容量ci,若健康检查失败或回传请求失败,则使ci=0,直到下一次定时健康检查或回传请求时刷新。

4.根据权利要求3所述的一种用于分布式计费日志回传的柔性反压方法,其特征在于,当日志处理集群检测到内部错误而需要退出服务,则拒绝一切回传请求,并返回ci=0。

5.根据权利要求1所述的一种用于分布式计费日志回传的柔性反压方法,其特征在于,所述网络传输速度si由请求体大小除以请求响应时间获得。

6.根据权利要求1所述的一种用于分布式计费日志回传的柔性反压方法,其特征在于,fi根据上次回传请求结果而更新,若请求成功,则fi=min(1,2×fi),若请求失败,则fi=max(0,0.5×fi)。

7.根据权利要求1所述的一种用于分布式计费日志回传的柔性反压方法,其特征在于,采用HTTP作为采集器和日志处理集群的交互协议。

8.根据权利要求7所述的一种用于分布式计费日志回传的柔性反压方法,其特征在于,采集器将需要发送的一系列日志gzip压缩后填充在HTTP的请求体中,若返回HTTP200则代表处理成功,其余状态码或连接失败均判定为处理失败,日志处理集群能够将队列剩余容量ci填充在HTTP响应体中。

9.根据权利要求2所述的一种用于分布式计费日志回传的柔性反压方法,其特征在于,当采集到的日志数量较少时,在过了超时时间后则触发回传请求。

10.根据权利要求9所述的一种用于分布式计费日志回传的柔性反压方法,其特征在于,将健康检查间隔与回传申请超时时间均设置在预设时间t,在预设时间t内至少对每一个日志处理集群发起一次健康检查或者回传请求。

...

【技术特征摘要】

1.一种用于分布式计费日志回传的柔性反压方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种用于分布式计费日志回传的柔性反压方法,其特征在于,所述日志处理集群具有健康检查接口或日志传输接口,健康检查接口用于返回该日志处理集群当前的队列剩余容量ci,日志传输接口用于接收处理传入的日志并返回该日志处理集群当前的队列剩余容量ci。

3.根据权利要求2所述的一种用于分布式计费日志回传的柔性反压方法,其特征在于,通过定时健康检查和/或上次回传请求获得的队列剩余容量ci,若健康检查失败或回传请求失败,则使ci=0,直到下一次定时健康检查或回传请求时刷新。

4.根据权利要求3所述的一种用于分布式计费日志回传的柔性反压方法,其特征在于,当日志处理集群检测到内部错误而需要退出服务,则拒绝一切回传请求,并返回ci=0。

5.根据权利要求1所述的一种用于分布式计费日志回传的柔性反压方法,其特征在于,所述网络传输速度si由请求体大小除以请求响应时间获得。

6.根据权利要求1所述的一种用于分布式计费...

【专利技术属性】
技术研发人员:肖立超李川平郑飞虎
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1