【ElasticSearch】 ElasticSearch serverless架构介绍(查询写入分离,计算存储分离)

news/2024/5/20 5:48:32 标签: elasticsearch, serverless, 架构

ElasticSearch 推出了全新的serverless架构,将查询(search)和写入(indexing)分离,将计算(computing)和存储(storage)分离,极大提高了 ES 的可运维性,降低了学习成本。本文将先介绍下serverless含义,再介绍ElasticSearch serverless架构

serverless_1">serverless介绍

serverless架构下,用户只需关注业务逻辑,无需管理服务器,云提供商负责置备、维护和扩展服务器基础架构等例行工作,云提供商对用户进行按量计费。

Serverless 的定义

Serverless 不如 IaaS 和 PaaS 那么好理解,因为它通常包含了两个领域 BaaS(Backend as a Service)和 FaaS(Function as a Service)。

BaaS

BaaS(Backend as a Service)后端即服务,一般是一个个的 API 调用后端或别人已经实现好的程序逻辑,比如身份验证服务 Auth0,这些 BaaS 通常会用来管理数据,还有很多公有云上提供的我们常用的开源软件的商用服务,比如亚马逊的 RDS 可以替代我们自己部署的 MySQL,还有各种其它数据库和存储服务。

FaaS

FaaS(Functions as a Service)函数即服务。FaaS本质上是一种事件驱动的由消息触发的服务,FaaS供应商一般会集成各种同步和异步的事件源,通过订阅这些事件源,可以突发或者定期的触发函数运行。

优点

  • 可运维性:无需管理服务器,比如操作系统的安全补丁升级、故障升级、高可用性,这些云服务(OSS,CDN)都帮着做了;

  • 可扩展性:无需对资源做预估和考虑未来的扩展。横向扩展是完全自动的、有弹性的、且由服务提供者所管理

  • 成本:按实际使用的资源付费,包括存储费用和请求费用,没有请求时不收取请求费用,通过使用iaas时是申请固定数量的服务器,即使低峰期服务器没有流量,也需要付费;运营成本也会降低,由于这个云服务使用者的数量会非常庞大,于是就会产生规模经济效应;服务的储存和计算被分开部署和收费

  • 安全性:这样一个系统甚至看不到服务器,不需要通过 SSH 登录,DDoS 攻击也交给云服务来解决。

缺点

  • 影响灵活性,不能做定制化的配置
  • 受制于供应商技术锁定。即便您决定要更换提供商,也可能需要升级系统以符合新供应商的规范,而这无疑会增加成本。

问题

用户需要管理集群、配置分片、集群容量管理、配置ILM,这些配置较为复杂,没有专业经验难以配置好。

解决方法

推出elasticsearch新的serverless架构,利用最新的云原生服务,通过无忧管理提供优化的产品体验。它提供数据湖的存储容量,但具有与 Elasticsearch 相同的快速搜索性能,以及无需干预的集群管理和扩展的操作简单性。该架构基于四个关键原则

  • 计算和存储解耦
  • 单独的搜索层和写入层
  • 作为记录系统的廉价对象存储
  • 低延迟查询

1 - architecture

计算存储完全分离

当前数据层分为hot, warm, cold, and frozen,来更好的分配数据给硬件。新架构下不存在这些数据层。并且支持更好的平衡查询效率和存储成本效率,支持快速扩展任何工作负载(我认为是计算(search和indexing)和存储(计算存储)可以分开扩容)

分开indexing层和search层

架构支持分开indexing层和search层(这和上一点不一样,indexing和search都是计算compute),这意味着不同的工作负载(indexing和search)可以独立扩容,可以针对每个用例选择和优化硬件。

这解决了indexing和search相互影响的问题,使得日志场景下用户可以避免大查询影响写入;搜索场景用户可以使用大量索引时间功能来提高相关性和搜索性能而不影响搜索性能

更便宜的对象存储

架构为了扩展性和存储成本使用廉价的对象存储。因为这点,ES通过持久化segment并在对象存储上复制segment,是的不需要复制indexing operation到多个replica节点并且节点仍需构建segment,因此减少了indexing成本。

大规模低延迟查询

对象存储可以支持大量数据,但不以速度或低延迟而闻名。为了解决引入多一层对象存储的延迟,在查询对象存储时ES支持了segment级别的并行查询,之前是单个分片一个查询线程从本地磁盘拉数据。通过可重用性和针对每种数据类型利用最佳 Lucene 索引格式,缓存也变得“更加智能”

参考

https://www.elastic.co/blog/elastic-serverless-architecture


http://www.niftyadmin.cn/n/5342441.html

相关文章

上位机图像处理和嵌入式模块部署(windows opencv)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 opencv可以运行在多个平台上面,当然windows平台也不意外。目前来说,opencv使用已经非常方便了,如果不想自己编译…

Apache Doris (六十九):JDBC Catalog

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 1. 创建Catalog

盖子的c++小课堂:第二十六讲:双向链表

前言 谢谢各位粉丝的支持,望我早日突破1000粉 双向链表 干货!单链表从原理到实现——附python和C++两个版本 - 知乎单链表是链表家族中的一员,每个节点依旧由 数据域(data)和指针域(next)组成,链表的具体概念下面有介绍: 机器学习入坑者:程序员基本功——链表的基…

openssl加解密和签名验签步骤操作记录

文章目录 一、AES加解密操作1.1 EBC模式1.2 CBC模式 二、RSA加解密操作三、RSA 加解密和 AES 加解密对比四、RSA签名和验签操作 一、AES加解密操作 1.1 EBC模式 使用 OpenSSL 进行 AES 的 ECB(电子密码本)模式加解密相对简单。以下是基本步骤&#xff…

机器学习实验3——支持向量机分类鸢尾花

文章目录 🧡🧡实验内容🧡🧡🧡🧡数据预处理🧡🧡代码认识数据相关性分析径向可视化各个特征之间的关系图 🧡🧡支持向量机SVM求解🧡🧡直觉…

如何生成开发语言的排名图表

1、解释说明 生成开发语言排名图表,通常需要以下几个步骤: - 首先,我们需要收集一些关于不同编程语言的统计数据,例如使用人数、市场份额等。这些数据可以从各种来源获取,例如网站、报告、数据库等。 - 然后&#x…

抖音跳企业微信的小方法-数灵通

通过巧妙的方式,我们可以实现从抖音直接跳转到企业微信,与卖家进行快速沟通。以下是关于如何在抖音上跳转到企业微信的科普信息: 1.获客链接:获客链接是连接抖音和企业微信的桥梁。点击这个链接,可以直接打开企业微信&…

[笔记]事务简介-springboot

在Spring Boot中,事务的管理通常通过注解来实现,使得配置变得简单而直观。这种方式与Spring Boot的设计理念一致,即减少显式配置,增加自动配置。以下是如何在Spring Boot项目中应用和管理事务的详细说明: Spring Boot中…