elasticsearch实际应用场景与扩展方案,容灾方案

Posted by eliooyang on 2023-05-26
Words 439 and Reading Time 1 Minutes
Viewed Times

浅显概括一下es的能力:分词能力,倒排索引,聚合计算能力。

能力示意图

实际应用场景

稍微了解一下elasticsearch生态

es_env.png

1.实时日志分析

主要运用场景:用户行为的业务日志(埋点),运营日志(系统的慢性能的接口)等等

通常这种场景使用elk/efk完成:
EFK.png

扩容:

2.搜索服务

微服务小程序内容索引架构,可以基于不同业务将数据拆分为多个子库做业务隔离。
es_search.png

适用业务
例如:feed流

3.时序分析

TimeStream优化Elasticsearch在存储指标数据方面的DSL查询复杂且慢以及存储成本过高等问题

1
PUT _time_stream/test_stream

TimeStream+Es+Prometheus+Grafana
Grafana.png

es集群优化方案

1.主要的优化项

img_1.png

优化方案

限流方案:

  • 内部服务调用权限,只有认证的服务才能进行调度。
  • 使用队列:优化队列优先级
  • 内存优化使用:全链路 + 精准匹配
  • 多租户: CVM/Cgroups

成本优化方案:

硬件成本

  • 冷热分离:使用混合存储平衡成本,性能
  • Rollup:预计算换取存储,性能
  • 备份归档:使用廉价的存储系统备份
  • 存储裁剪,生命周期管理等等

内存成本

  • LRU Cache:提升内存利用率
  • Off Heap:降低堆内存,提高节点规格
方案实践

es6.x开始推出Rollup。

Rollup 类似于大数据场景下的 Cube、物化视图,它的核心思想是通过预计算提前生成统计信息,释放掉原始粒度数据,从而降低存储成本、提高查询性能,通常会有数据级的收益。

// TODO

索引汇总作业
https://www.modb.pro/db/444747


This is copyright.

...

...

00:00
00:00