丰巢架构大升级:告别ELK“卡顿”,拥抱高效新纪元!

在快递物流行业蓬勃发展的当下,丰巢作为国内智能快递柜服务领域的领军者,业务版图不断拓展,现已涵盖快递、广告、洗护、到家四大板块。然而,随着业务的飞速增长,其日志数据处理面临着前所未有的挑战。日志数据写入量如汹涌潮水般,超过100万条/秒,日存储量更是高达约40TB。在这样的数据洪流冲击下,原ELK架构在业务高峰期显得力不从心,日志延迟超过1小时,CPU负载飙升至200%-300%,一系列严重问题接踵而至,架构升级迫在眉睫!

原架构之痛:难以承受的业务重压
丰巢原ELK集群的配置可谓“阵容强大”,采用13台96C 256G节点搭配5台48C 128G节点的异构组合,写入峰值约80万条/秒。即便投入大量资金新购机器,将写入峰值提升至100万条/秒,可面对业务高峰期120万条/秒的汹涌需求,依然捉襟见肘。不仅如此,存储成本如脱缰野马般持续攀升,而在多表Join场景下,Elasticsearch更是显得力不从心,难以满足复杂查询需求。

技术选型大比拼:Doris脱颖而出
面对原架构的种种困境,丰巢在技术选型上进行了深思熟虑。在相同硬件条件下,对Apache Doris和Elasticsearch展开了一场激烈的对比测试。结果令人眼前一亮,Apache Doris在核心指标上全面碾压Elasticsearch!日存储占用从40TB锐减至18TB,降幅高达50%;写入峰值从100万条/秒飙升至200万条/秒,直接提升1倍。此外,Doris还自带诸多“超能力”:倒排索引加全文检索,让数据检索如探囊取物;原生支持Join/聚合/子查询,轻松应对复杂业务场景;CPU/内存/IO资源隔离,确保系统稳定运行。如此卓越的表现,让Doris成为丰巢架构升级的不二之选。

新架构闪亮登场:高效协同的全新生态
新架构在保留Filebeat日志采集和Kafka消息队列这两大“得力助手”的基础上,进行了大胆创新。将Logstash替换为Flink,成功解决了高并发下OOM(内存溢出)的难题,让数据处理更加流畅;存储引擎从Elasticsearch切换至Doris,为海量数据提供了更强大的存储和处理能力;查询入口从Kibana更换为SelectDB Studio,实现了SQL加可视化的统一体验,让用户操作更加便捷直观。这一系列变革,构建起了一个高效协同的全新日志处理生态。

关键调优策略:细节之处见真章
表结构设计:精打细算降压力
在表结构设计方面,丰巢团队可谓煞费苦心。采用按小时分区的方式,有效降低了单分区的压力,让数据存储更加合理;RANDOM分桶策略将单桶大小控制在约5GB,避免了数据倾斜问题;针对全文检索字段开启分词,提高检索准确性;等值查询字段则不启用分词,减少不必要的计算开销;采用ZSTD压缩算法,在查询性能与存储空间之间找到了完美平衡点。

写入链路优化:畅通无阻提效率
写入链路是数据处理的“高速公路”,丰巢对其进行了全面优化。Flink SQL开启批量写入模式和单Tablet导入,大大提高了写入效率;并行度与Kafka分区数1:1匹配,确保数据能够快速、准确地传输;分桶数从360调整至180,进一步优化了数据分布;Compaction Score从2000以上降至280左右,减少了数据合并的开销,让写入过程更加畅通无阻。

查询调优:精准匹配解难题
查询性能直接影响用户体验,丰巢针对查询过程中的各种问题进行了细致调优。针对关键字含特殊符号时的漏查问题,使用MATCH_PHRASE进行短语匹配,确保查询结果的准确性;根据字段特征灵活选择MATCH或LIKE,非机械依赖倒排索引,提高了查询的灵活性和效率。

稳定性保障:多重防护筑防线
资源隔离:互不干扰保稳定
通过Workload Group实现资源隔离,为不同业务分配独立的资源池。配置内存软限制50%、CPU硬限制50%,确保各个业务之间互不干扰,即使在高并发情况下也能稳定运行。

大查询拦截:防患未然护系统
建立大查询拦截机制,在查询规划阶段对无WHERE条件、未指定log_time或app_name的查询进行识别和拦截。避免这些大查询占用过多系统资源,影响其他正常查询的执行,防患于未然。

行级权限:数据隔离护隐私
通过行级权限实现业务线数据隔离,不同业务线只能访问自己权限范围内的数据,有效保护了用户隐私和数据安全。

实时监控:洞察秋毫保畅通
实时监控Kafka消费积压和日志链路延迟,一旦发现异常情况,能够及时发出警报并采取相应措施。确保整个日志处理链路始终保持畅通,为用户提供稳定可靠的服务。

posted @ 2026-04-16 18:35  丶紫轩灬  阅读(9)  评论(0)    收藏  举报