作者简介
Dongyu,资深云原生研发工程师,专注于日志与OLAP领域,主要负责携程日志平台和CHPaas平台的研发及其运维管理工作。
-
ElasticSearch 集群负载高,导致较多的请求 Reject、写入延迟和慢查询。 -
每天 200TB 的数据从热节点搬迁到冷节点,也有不少的性能损耗。 -
节点间负载不均衡,部分节点单负载过高,影响集群稳定性。 -
大查询导致 ElasticSearch 节点 OOM。
-
ElasticSearch的吞吐量也达到瓶颈。 -
查询速度受到整体集群的负载影响。
-
倒排索引导致数据压缩率不高。 -
大文本场景性价比低,无法保存长时间数据。
-
我们采用双 list 的方式来存储动态变化的 tags(当然最新的版本22.8,也可以用map和新特性的 json 方式)。 -
按天分区和时间排序,用于快速定位日志数据。 -
Tokenbf_v1 布隆过滤用于优化 term 查询、模糊查询。 -
_log_increment_id 全局唯一递增 id,用于滚动翻页和明细数据定位。 -
ZSTD 的数据压缩方式,节省了40%以上的存储成本。
-
迁移过程自动化程度超过95%,基本实现对用户透明。 -
存储空间节约50+%(如图17),用原有ElasticSearch的服务器支撑了4倍业务量的增长。 -
查询速度比ElasticSearch快4~30倍,查询P90小于300ms,P99小于1.5s。
-
单集群规模太大,Zookeeper 性能达到瓶颈,导致 DDL 超时异常。 -
当表数据规模较大时,删除字段,容易超时导致元数据不一致。 -
用户索引设置不佳导致查询慢时,重建排序键需要删除历史数据,重新建表。 -
查询层缺少限流、防呆和自动优化等功能,导致查询不稳定。
-
表与集群严格绑定,集群磁盘满后,只能通过双写迁移。 -
集群搭建依赖 Ansible,部署周期长(数小时)。 -
Clickhouse 版本与社区版本脱节,目前集群的部署模式不便版本更新。
“携程技术”公众号
分享,交流,成长
本篇文章来源于微信公众号: 携程技术
本文来自投稿,不代表TakinTalks稳定性技术交流平台立场,如若转载,请联系原作者。