扫码阅读
手机扫码阅读
亿级日志队列回放性能测试初探
338 2024-04-03
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:亿级日志队列回放性能测试初探
文章来源:
FunTester
扫码关注公众号
Summary
队列在软件设计模式中扮演着关键角色,尤其是在处理大量消息的场景下。作者之前设计了基于时间戳的日志回放引擎,并提出了千万级日志回放引擎设计,虽然后来有了更好的替代方案,但核心思想是将日志进行格式转换后存储。在千万日志级别下,将日志直接放在内存中对JVM内存压力较小,GC表现也在可接受范围内。然而,为了实现更大规模的日志回放,必须改为将日志存储在磁盘上,并顺序读取,尽管这样做在性能上有所牺牲。
作者发现了Chronicle Queue,一个支持TB级别文件的高性能、低延迟读写的库,其API简单且性能高,非常适合作者的需求。文中介绍了如何使用Chronicle Queue创建大型持久队列,以保持低延迟。
演示
文章中提供了一个日志回放的示例,演示了如何利用Chronicle Queue改造日志类,以保留日志时间戳、host等信息,并提醒读者注意浮点类型字段值的有效位数长度问题,并推荐了关于Chronicle Queue序列化方案的性能优化比较测试。
最初的方案
文章最初探索使用ConcurrentLinkedQueue,但这种方法在处理大量数据时会因为GC压力导致性能下降。因此,作者转向使用Chronicle Queue,示例中展示了如何创建日志队列,以及如何在不同的线程中进行生产和消费,从而实现高效的日志回放。
想要了解更多内容?
查看原文:亿级日志队列回放性能测试初探
文章来源:
FunTester
扫码关注公众号
FunTester的其他文章
固定QPS异步任务功能再探
使用任务队列方案重新实现。
基于DOM的XML文件解析类
最近公司做服务配置检查,特别是zookeeper配置里面关于数据库、redis、域名的配置。刚好还没弄过XML解析,所以顺手封装了一个工具类。
手动测试依然很重要
市场上看到的数百种新的应用程序和产品,在向用户?
基于代码的自动化和无代码自动化
在之前的文章AI如何影响测试行业中提到了随着更先进的技术进入由AI/ML支持的连续测试领域,组织尤其是测试从业人员常常正在争论哪种更好,是通过编程语言完成自动化测试还要采用无代码测试解决方案呢?
弱网测试:最低流畅网速是多少?
各位觉得自己常用APP最低流畅网速是多少呢?
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线