阿里云 Elasticsearch 内核的优势有哪些?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
先看内圈,开源 ES 针对通用硬件设施,而阿里云 ES 内核则是针对阿里云基础设施深 度定制的内核,可以最大地发挥阿里云基础设施的性能,以及成本方面的优势。然后,看最 外圈,开源 ES 内核为了适应 ES 丰富的使用场景包括搜索,可观察性等,无法做到功能和 性能兼顾,而阿里云ES内核依托于阿里云ES的服务可以做很多场景化的优化和功能增强, 在搜索和观察性等方面会比自建的 ES 更有优势。内核在中圈,向下运行在阿里云基础设施, 向上依托于阿里云 ES 服务。可以看到,阿里云 ES 内核相比开源 ES 自建集群,不论在成 本、性能、稳定性和功能上都会更具优势。 2. 基于用户需求的内核建设 用户对阿里云 ES 内核的需求,主要是以下三个方面:
1)简单 存储容量能够不断扩充,计算有足够的弹性,用户不需要操心资源的问题。
2)好用 开箱即用,不用进行一系列复杂的部署和配置,直接根据场景提供最优的配置即可,还 要有丰富的检索功能可以使用。
3)性价比 阿里云 ES 做到价格足够低,性能足够好,足够稳定。 结合上述的需求,我们从下面四个方面展开内核建设。
1)成本节约 第一,我们提供计算存储分离的增强版 ES,成本上节省了副本的开销,保证足够的弹 性,可按需使用。第二,支持冷热分离,成本更低地存储介质。第三,Indexing Service, 这是我们全新发布的产品,对写多读少的场景有很大的成本节约。第四,索引数据压缩,我 们新增的压缩算法可以比默认的压缩方式提升 45%的压缩率。
2)性能优化 第一,我们研发的 ElasticBuild 相比在线的写入能有三倍的性能提升。 第二,我们还 研发了物理复制功能,从最早支持计算存储分离到现在的支持通用版的 ES,物理复制通过 segment 同步而不是 request 同步的方式,减少了副本的写入开销,所以有一个副本的情 况下,写入性能能有 45%左右的性能提升,副本越多,提升越明显。 第三,bulk 聚合插件, 在协调节点聚合下载的数据,降低分布式的长尾效应,在写入吞吐高、分辨数多的场景写入 吞吐能有 20%以上的性能提升。第四,时序查询优化,针对 range 查询,可以直接跳过不 在 range 范围内的 segment,结合时序策略可以获得更好的查询性能提升。
3)稳定性提升 第一,我们研发了集群限流插件,能够实现索引,节点,集群级别的读写限流,在关键 时刻对指定的索引降级,将流量控制在合适的范围内。第二,慢查询隔离池的特性,它避免 了异常查询消耗资源过高导致集群异常的问题。 第三,协调节点流控插件,它集成了淘宝搜 索核心的流控能力,针对分布式环境中偶发节点异常导致的查询抖动,能够做到秒级切流, 最大程度降低业务抖动概率,保证业务平稳地运行。
第四,monitor 插件,它采集了集群多 维度的指标,可以提供全方位的监控。
4)功能增强 第一,向量检索插件,是基于阿里巴巴达摩院 Proxima 向量检索库实现,能够帮助用 户快速地实现图像搜索、视频指纹采样、人脸识别、语音识别等等场景的需求。第二,阿里 NLP 的分词插件,它是基于阿里巴巴达摩院提供的阿里 NLP 的分词技术,支持阿里内部 包括淘宝搜索、优酷、口碑等业务,提供了近 1G 的海量词库。 第三,OSS 的 Snapshot 插件,它支持使用阿里云 OSS 的对象存储来保存 ES 的 Snapshot。 第五, 场景化的推荐模板,可以针对不同的业务场景提供成本、性能的优化。
资料来源于《开源与云Elasticsearch应用剖析》下载地址:https://developer.aliyun.com/topic/download?id=1169