update README.md.

This commit is contained in:
tianyaleixiaowu 2021-12-30 09:15:50 +00:00 committed by Gitee
parent 1f0a764987
commit 87d6f55d73
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
5 changed files with 18 additions and 0 deletions

View File

@ -9,3 +9,21 @@
# 背景
京东App作为一个巨大量级的请求入口涉及了诸多系统为了保证系统的健壮性、和请求溯源以及出现问题后的问题排查通常我们保存了用户请求从出入参、系统中途关键节点日志info、error、链路日志等并且会将日志保存一段时间。
日志系统基本划分为几个模块收集filebeat、logstash等传输kafka、tcp直传等存储esmysql、hive等查询kibana、自建
以传统日志解决方案为例当有一个G的日志产生后日志写本地磁盘占用磁盘1G读取后写入mqmq占用2G单备份消费mq写入eses占用1G共需占用磁盘4GB附带着网络带宽占用和同体量的服务器资源占用单服务器秒级处理100M
则以京东App的体量当秒级百G日志产生时所耗费的硬件资源相当庞大成本已到了难以承受的地步。
该日志框架即为在有所取舍的情况下支撑海量日志的场景所研发如前文所讲该方案在同等硬件配置下较filebeat+mq+es的模式秒级 **日志吞吐量提升10倍且全链路磁盘占用下降了70%以上**
# 方案简介
详细的可以看开头那篇文章。
这里只放两张图基本能说明原理。
![输入图片说明](image1.png)
![输入图片说明](image.png)
![输入图片说明](image2.png)
基本流程为通过filter获取web请求出入参、自定义log4j、logback的appender搜集中途打印的日志通过请求入口时生成的tracerId进行关联写入本地内存取代写磁盘进行压缩字符串空间占用减少80%以上通过Udp发往worker端取代mqworker接收数据抽取索引字段并入库clickhouse除未来查询要用的索引字段外其他内容全程压缩直至入库。

BIN
image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

BIN
image1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

BIN
image2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
q1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB