日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Elasticsearch生态技术峰会 | 阿里云Elasticsearch云原生内核

發布時間:2024/8/23 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Elasticsearch生态技术峰会 | 阿里云Elasticsearch云原生内核 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:?開源最大的特征就是開放性,云生態則讓開源技術更具開放性與創造性,Elastic 與阿里云的合作正是開源與云生態共生共榮的典范。值此合作三周年之際,我們邀請業界資深人士相聚云端,共話云上Elasticsearch生態與技術的未來。

開源最大的特征就是開放性,云生態則讓開源技術更具開放性與創造性,Elastic 與阿里云的合作正是開源與云生態共生共榮的典范。值此合作三周年之際,我們邀請業界資深人士相聚云端,共話云上Elasticsearch生態與技術的未來。

?

?

本篇內容是阿里巴巴集團技術專家魏子珺帶來的阿里云Elasticsearch云原生內核
分享人:阿里巴巴集團技術專家魏子珺

視頻地址:https://developer.aliyun.com/live/246150

關于阿里云Elasticsearch云原生內核,本文將通過三個部分展開介紹:

  • 阿里云Elasticsearch內核概覽
  • 云原生Elasticsearch定義
  • 阿里云原生Elasticsearch實踐

一、阿里云Elasticsearch內核概覽

(一)阿里云ES的優勢

下面這個對比圖可以很好地說明阿里云ES相比開源ES 的優勢。

?

?

先看內圈,開源ES針對通用硬件設施,而阿里云ES內核則是針對阿里云基礎設施深度定制的內核,可以最大地發揮阿里云基礎設施的性能,以及成本方面的優勢。然后,看最外圈,開源ES內核為了適應ES豐富的使用場景包括搜索,可觀察性等,無法做到功能和性能兼顧,而阿里云ES內核依托于阿里云ES的服務可以做很多場景化的優化和功能增強,在搜索和觀察性等方面會比自建的ES更有優勢。內核在中圈,向下運行在阿里云基礎設施,向上依托于阿里云ES服務。可以看到,阿里云ES內核相比開源ES自建集群,不論在成本、性能、穩定性和功能上都會更具優勢。

(二) 基于用戶需求的內核建設

用戶對阿里云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。 第四,場景化的推薦模板,可以針對不同的業務場景提供成本、性能的優化。

以上的這些特性都能在我們阿里云ES官方文檔中看到,歡迎大家使用。

二、云原生ES的定義

(一)云原生Elasticsearch如何定義

首先看一下什么是云原生。阿里巴巴云原生公眾號前段時間推出了一篇文章《什么是真正的云原生》,總結了云原生的定義:第一,彈性、API自動化部署和運維;第二,服務化云原生產品;第三,因云而生的軟硬一體化架構。

?

?

上圖是云原生架構的白皮書封面,這是由阿里云二十位云原生技術專家共同編寫,已經正式對外發布,歡迎大家閱讀。

那么,什么是云原生ES?

  • ES的云服務,開箱即用,能用API自動化部署和運維
  • 計算存儲分離,彈性可伸縮
  • 能充分利用云基礎設施,網絡、存儲和算力等

以上三點就能對應最開始提到的三個圈: 服務,內核,和基礎設施,這樣才是云原生ES。

(二)云原生 Elasticsearch如何設計

?

?

第一,它必須是計算存儲分離的架構,這樣才能提供更加彈性的計算能力和無限的存儲空間。第二,可以支持冷熱分離,冷熱的節點都要是計算存儲分離的架構。冷節點使用高性價比的對象存儲,相比熱節點可以有90%的成本節約。第三,Serverless的用戶真正關心的是索引的使用,而不是ES集群的維護。Serverless讓用戶的關注點從集群的維度可以下沉到索引維度。

(三)云原生Elasticsearch內核挑戰

實現這樣的云原生內核,挑戰是非常大的,主要的挑戰分為下面三個方面:

1、熱節點的分布式文件系統
第一,分布式文件系統自身的穩定性保證,ES對Latency非常敏感,它提供性能和穩定性與本地盤相當的分布式文件系統,這個挑戰本身就非常大。第二,ES在實現一寫多讀時,如何防止出現多寫的情況。ES數據是在內存,讀寫需要的內存狀態數據、數據是如何保持一致性的,這些都是很大的挑戰。

2、冷節點的對象存儲
對象存儲提供的是HTTP接口,所以需要去適配。另外,對象存儲的單次IO Latency非常高,所以只有在冷節點相對Latency不敏感的場景才有機會使用。如何解決Latency最高的問題也是很有挑戰。最后是對象存儲無法使用到操作系統的pagecache和預讀能力,所以要用對象存儲,這些能力必須在ES側實現。

3、Serverless
最難解決的就是多租戶的共享和隔離的平衡問題,如果不同索引直接產生相互的影響,在云上是不可接受的。如果不共享,就意味著資源無法充分利用。如何平衡共享和隔離的問題,這是Serverless最大的挑戰。 第二是體驗,基于索引的使用如何提供和云原生ES一樣的體驗也是需要考慮的問題。 第三是資源監控,如何評估索引的使用資源也是一個挑戰。

三、阿里云原生Elasticsearch實踐

1、計算存儲分離

?

?

計算存儲分離核心的訴求是彈性,它不只是像云原生ES那樣支持動態的添加節點、自動Shard搬遷,而是徹底的彈性。對于ES來說,它的核心訴求是兩點:Shard秒級搬遷和Replication秒級增加。這樣才能解決熱點的問題,和高低峰快速的動態擴容的問題。如果擴縮容還要遷移Shard的數據,彈性是不夠的。徹底的彈性一定是Shard搬遷,Replication擴充,數據是不動的,只是調整DataNode對Shard的映射。要實現這樣的彈性,就必須做到計算存儲分離。

阿里云對ES存儲分離內核的實現如下:

  • 數據存儲在分布式文件系統上,由分布式文件系統保證數據的可靠性
  • 同一個Shard的多個副本數據只保存一份
  • 一寫多讀的場景,這樣就不再依賴于ES自身的replication,可以減少寫入的開銷。
  • 索引擴Shard,無需復制數據,秒級增加只讀Shard
  • Shard搬遷無需遷移數據,秒級切換DataNode

核心技術之一:內存物理復制,實現replica的近實時訪問

Segment同步的實現細節:

?

?

圖中描述的是ES物理復制的狀態機,核心是為了解決segment同步亂序的問題。通用的物理復制功能也是一樣的實現,主要區別在于計算存儲分離只需要復制實時生成的segment,對于后續產生的segment,強制提交commit,確保segment落盤,來防止大的segment進行復制。而通用的物理復制,外界的segment也是需要復制的,這種segment往往會比較大。所以這里有一個關鍵的優化,為了防止大segment復制導致的主從可見性差距過大,主shard在從shard復制完成后才會打開最新的segment。

下圖介紹了物理復制保證數據一致性的方式。

?

?

核心是保證checkpoint的一致性,通過將主shard的checkpoint同步到從shard來實現。結合這張圖可以看下流程,當數據寫進來的時候,主shard會更新checkpoint,在第二步刷新segment時,第三步將segment復制到從shard時,會帶上checkpoint,第四步從shard會用這個checkpoint更新自己的local checkpoint來保證主從shard使用了相同的checkpoint,這樣就實現了數據一致性的保證。

核心技術之二:兩階段IO fence
核心要解決的問題是防止多寫。通過分布式文件系統的管控側將異常節點加入黑名單,直接從根本上防止了異常節點的顯露。

?

?

上圖展示了整體的流程,在主Shard節點異常的時候,MasterNode 首先發現主Shard的異常,然后將主Shard所在的節點加入黑名單。第三步,這個節點切斷了IO的權限,徹底失去了寫的能力。第四步,master通知從Shard晉升成主Shard。第五步,從Shard晉升成主Shard后,就開始正常地讀寫數據。

我們的計算存儲分離的架構通過阿里云增強版進行售賣。計算存儲分離除了彈性的特點外,由于一寫多讀的特點,在性能、成本上都有顯著的提升。我們測試了線上阿里云增強版ES和原生ES在同樣規格配置的性能對比情況,從表格的最右一列紅色的標識可以看到,不論在translog同步還是異步的場景,一個副本的情況下,性能都有超過百分之百的提升,副本越多,性能提升越明顯。

?

?

總結一下計算存儲分離的特點:首先它是秒級彈性擴縮容;第二,由于不寫副本,所以寫入性能能有100%的提升;第三,由于多個副本存儲一份數據,所以存儲成本呈倍數降低。

計算存儲分離——熱節點
想要使用我們計算存儲分離的ES集群,可以選擇圖中所示的日志增強版,歡迎大家使用。

?

?

計算存儲分離——冷節點
熱節點通過分布式文件系統實現了計算存儲的分離,冷節點也需要實現計算存儲分離才能實現彈性。冷節點這部分我們還在研發階段,所以這次分享給大家的是一些思考的內容。

?

?

冷節點的成本是第一要素,所以對象存儲成了首選。對象存儲相比分布式文件系統和塊存儲等特點非常鮮明。劣勢,大都在挑戰中提及到,這些劣勢相比其他存儲,無論從易用性和性能上都無法跟分布式文件系統和塊存儲相比,所以這些熱節點很難直接使用對象存儲。但是冷節點不同,冷節點核心考慮的是成本,因此它也有一些優勢。它的成本比SSD云盤便宜近90%,可以真正的按需使用,不用預先準備存儲空間。另外可以提供12個9的可靠性,所以也可以不用存儲副本,這又是一半以上的成本節約。基于這些優勢,對象存儲成了最好的選擇。

如何最大減少它的劣勢帶來的影響,這要從ES的特點說起。ES在可觀察性、安全的方向上,冷熱數據明顯,日志長期存在SSD上成本過高,所以可以考慮冷熱架構。第二,ES在search的時候很消耗CPU,因此可以利用計算時異步地扒取對象存儲的數據,減少IO等待的時間。第三點是冷數據基本上無寫入,所以對寫入性能要求也不高。以上的三點就是ES冷數據使用對象存儲的原因。

Indexing Service
Indexing service是我們即將重量級發布的新產品,這是我們在serverless嘗試的一個產品,是針對寫入方面的性能優化。相比查詢的多樣性,寫入會相對簡潔明了。Indexing service,從功能方面,提供了寫入托管服務,滿足高并發持續數據寫入,降低了業務集群的CPU開銷,它適用在日志、監控、APM等時序場景,它解決的最大痛點是寫多讀少,而且很多時序場景下寫遠多與讀,業務需要消耗大量的節點資源來滿足寫入。Indexing service 可以極大的降低這部分場景的成本開銷。

Indexing service 有以下三個方面的特點:
1、完全兼容原生的 API
2、按量付費,按寫入吞吐和QPS實際需求付費
3、寫入能力可秒級快速彈性擴縮

下圖展示了Indexing service是如何實現的:

?

?

1、第一,請求轉發,請求發到用戶ES集群,用戶使用云原生API操作ES,ES內核會將開啟托管的索引寫入請求,轉發到Indexing Service。這里可以展開再縮小,對于不再寫入的索引,用戶就可以取消協助托管,釋放存儲成本。Indexing service結合Data stream和over功能可以有非常好的用戶體驗,因為新生成了索引后,老索引就不再寫入。我們在內核上做了優化,在生成新索引的時候就會自動取消托管。

2、第二步,在寫入 Indexing service 后,內部會經過分布式的 QoS 模塊,進行寫入的流量控制,來阻止資源的過度消耗。

3、第三步,跨集群的物理復制, Indexing Service 構建的索引是通過物理復制到用戶集群的。

4、最后是 Indexing Service 內部會持續地運行原數據同步的 task ,實時地同步用戶集群托管的索引 metadata。

Indexing Service將于2021年2月全新上線,實現ES在時序日志場景的降本增效。 Index server 可以解決時序日志數據高并發寫入瓶頸,優化集群寫入計算資源成本,降低運維的復雜度。Indexing Service 無論從寫入性能,成本節約,還是彈性伸縮的能力方面都能帶來不一樣的體驗,大家可以敬請期待。


?

原文鏈接

本文為阿里云原創內容,未經允許不得轉載。

總結

以上是生活随笔為你收集整理的Elasticsearch生态技术峰会 | 阿里云Elasticsearch云原生内核的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。