轻量级高性能日志收集器的设计与开发

来源 :华东师范大学 | 被引量 : 0次 | 上传用户:haiyang1979
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着分布式系统的快速发展,复杂应用不断水平扩展,日志被分散在很多不同的机器设备上,同时各类应用程序在运行中产生的日志呈爆炸式增长[1],给日志的收集、存储和分析都带来了新的挑战。目前市场上常见的日志收集方案,不能同时解决日志可分析性差、性能差、不可靠、不好扩展等问题,其中性能方面暂未取得突破性进展,无法满足业务快速扩张的需求。因此本文核心要解决性能问题,同时保证可靠性、可分析性和可扩展性,为特定场景下的日志采集提供了更好的解决方案。在可分析性问题上,本文通过JSON序列化将日志数据进行结构化,方便后续的可分析性;添加了日志排序字段,能保证毫秒内日志的有序性,方便排查问题。在可扩展性问题上,当组装日志数据时自动获取MDC中日志数据,各业务线可以根据各自的需求,将定制化的属性放入MDC中即可做到日志内容的方便扩展;采用Kafka和Pulsar这种分布式可水平扩展的组件来解决日志中心服务的可扩展性问题。在可靠性问题上,当日志中心不可用时,支持将日志暂存在本地;采用心跳机制,避免由于网络异步发送带来的日志丢失问题;采用发送确认机制,避免内存中日志由于服务重启带来丢失问题。本文针对日志本地存储实现了一个日志持久化文件系统,该系统可以提供对日志的临时存储和读取,支持对日志使用不同的压缩算法,保证日志读取的有序性,支持对单个日志文件的大小以及日志文件的个数可配置,支持服务重启后自我检索并还原到上次读写的索引位置。针对性能问题,在网络传输中引入批量技术节省网络IO开销;采用Disruptor高性能队列替代JDK自带的阻塞队列,能提供更好的性能表现;重写了JSON序列化方法,减少中间过程和临时对象的创建;采用内存重用技术,减少内存开辟和销毁的开销;采用零拷贝技术,减少内存复制的开销。本文自定义实现的JSON序列化工具,可以做到零拷贝和零GC。该工具支持对时间戳的格式化,支持对较长的字符串做截取,支持byte数组重用,其中重写的时间戳格式化,相比Java自带的日期格式化工具来说,性能提升了7倍。系统经过测试后性能提升明显,相较于Filebeat文件采集方式,吞吐量提升了18倍,相较于Github网络采集方式,吞吐量提升了5倍,在4核8G这种常见的机器上,最大能支持到100万的日志打印速度。本论文设计实现的日志收集器已经在公司应用系统中投入使用,使用效果良好。
其他文献
呼吸系统疾病是一类常发性疾病,其致死风险在城乡均排名前列。探究影响该类疾病发病因素,降低其死亡率已成为近些年的研究重点,但在诸多研究当中,包含时空效应分析的研究较少。本文使用广州市2016-2019年呼吸系统疾病门诊数据与51个环境监测站获得的大气污染物数据,研究该地区呼吸疾病死亡病例与环境因子的关系,同时考量时空随机效应的影响,最终实现疾病制图。模型拟合基于贝叶斯框架,并使用INLA算法进行参数
学位
PageRank算法是一种计算图网络数据中节点重要性的算法,通过入链节点的重要性和入链节点的数目来计算每个节点重要性,可以广泛应用于搜索引擎推荐、社交网络人群重要性排序以及文献作者排序等实际问题中。但在实际问题中,由于图网络结构的拓扑结构,同一节点对不同节点的重要性贡献是不同的,这时使用原始的PageRank算法计算网络中节点重要性不够准确,而基于无向结构的PageRank算法虽然可以改变计算过程
学位
随着互联网行业的高速发展和物质生活的极大丰富,国内外涌现出大量的互联网电商平台。持续膨胀的数据量以及日益复杂的业务场景,对支撑电商平台的基础架构的性能和稳定性提出了重大考验。在保证系统性能和稳定的同时科学地控制运营成本是管理者关注的重要方面。本文通过对基于微服务及云原生架构的互联网电商平台的业务特点和Kubernetes集群的负载指标进行分析,指出了存在的资源浪费和服务抖动问题:负载指标变化规律与
学位
聋哑残疾的患病人数是中国五大残疾人数之首。据统计,截止2020年中国有2780多万的聋哑人。因聋哑人群体语言听觉能力的缺失导致与他人沟通困难,给工作生活带来了诸多不便,产生许多社会问题。针对聋哑人沟通的难题,研究人员做了大量的基于手语、文字等方面的研究,并在手语和文字的翻译效率、准确性等方面有了非常大的进展。然而,手语翻译方案存在使用广泛性不够,标准繁多,价格昂贵等问题。实时文字翻译方案交互效率低
学位
随着嵌入式系统结构和交互的日益复杂以及软件在嵌入式系统应用比重的增加,如何保障复杂嵌入式系统的高安全性和高可靠性逐渐成为了现今的挑战。目前,传统系统安全分析方法如故障模式及影响分析(FMEA)、故障树分析(FTA)、可靠性框图(RBD),已广泛运用于学术界和工业界。但是面对系统的高度集成化、复杂化、软件密集化的发展趋势,传统的系统安全分析过程往往难以应对。在常规的安全分析过程中,安全工程师通常使用
学位
近年来,随着教育和信息化技术的融合,在线教育呈现蓬勃发展趋势,在线试题数量大规模激增。如何高效组织和管理这些试题资源,有效实现试题推荐、快速组卷、自适应测试等智能化过程,逐渐成为该领域的研究重点。试题知识点的自动标注是管理题库数据、提高教育自动化和智能化的基础所在,其本质是文本的多标签分类。目前,针对数学试题的知识点自动标注研究还很少,相较于普通文本,数学文本因为包含符号、公式等特殊元素,具有更加
学位
近年来,边缘网络流量的空前增长,以及新型应用对服务体验质量(Qo E)的更高要求,对通信网络的数据通信质量(如带宽、时延、吞吐量)提出了新的标准和挑战。缓存通过将一部分数据存储在边缘网络节点,成为一种缓解这些问题的有效方法。为此,各种各样的缓存方案被提出,但是,这些方案要么因为缺乏自我学习能力和自我决策能力而不够智能,要么缓存命中率不够高而不够有效。基于这些观察,本文提出了一种新的基于深度强化学习
学位
近年来,抽象式文本摘要模型比抽取式文本摘要模型更受青睐,因为其可以生成原始文本中不存在的单词,其摘要描述更加灵活和自然。基于序列到序列的抽象式文本摘要模型通过对原始文本和参考摘要之间的关系进行建模,从训练数据中学习摘要生成的模式。虽然基于序列到序列模型的抽象式文本摘要有着能够自由生成文本的优势,但是由于训练数据和现有模型均存在较高的不确定性,目前现有方法的摘要生成效果仍然不佳。其一是由于序列到序列
学位
基于深度学习的裂纹识别是计算机视觉中一个重要的任务,在工业界有着广泛的应用,例如对于桥梁,建筑,大型交通工具等环境下的裂纹进行识别。裂纹普遍存在于各类环境中,但是同一类环境下的裂纹一般数量较少,并且裂纹的形式多种多样。除此之外,裂纹识别主要被应用于机器人等产品上。本文主要解决边缘设备裂纹识别任务算力不足问题,构建了FRCRU算法解决数据不均衡问题,设计了通用大模型作为技术储备。本文以裂纹识别存在的
学位
本文研究三维量子磁流体-液晶耦合方程组Cauchy问题经典解的整体存在性和衰减.对于这个问题,我们考虑初值在常平衡态的小扰动条件下(H3空间中).一方面,运用能量方法得到局部解的一致有界估计,进而得到整体解存在性;另一方面,当初值的H-s(0≤s<3/2)范数或者B2,∞-s(0<s≤3/2)范数有限时,通过负考虑在负Sobolev空间和负Besov空间中的能量估计,利用正则插值技巧得到整体解的衰
学位