雲端原生應用程式中的 Elasticsearch

提示

此內容摘錄自《建構適用於 Azure 的雲端原生 .NET 應用程式》電子書,您可以在 .NET Docs 找到此電子書,或免費下載可離線閱讀的 PDF。

Cloud Native .NET apps for Azure eBook cover thumbnail.

Elasticsearch 是分散式搜尋和分析系統,可在各種資料類型之間啟用複雜的搜尋功能。 它是開放原始碼,且非常熱門。 請考量下列公司將 Elasticsearch 整合至其應用程式中的方法:

  • 維基百科,用於全文和累加式 (在鍵入的同時搜尋) 搜尋。
  • GitHub,用於編製索引並公開超過 8 百萬個程式碼存放庫。
  • Docker,用於讓其容器程式庫可供探索。

Elasticsearch 建置於 Apache Lucene 全文搜尋引擎之上。 Lucene 提供高效能的文件索引編製和查詢。 其會使用反轉的索引編製配置來編製資料索引,並非將頁面對應至關鍵字,而是將關鍵字對應至頁面,就如同書籍結尾的字彙一樣。 Lucene 具有強大的查詢語法功能,並可透過下列方式查詢資料:

  • 詞彙 (完整單字)
  • 前置詞 (開頭為單字)
  • 萬用字元 (使用 "*" 或 "?" 篩選器)
  • 片語 (文件中的一系列文字)
  • 布林值 (結合查詢的複雜搜尋)

雖然 Lucene 可提供低階管道進行搜尋,但 Elasticsearch 可提供基於 Lucene 的伺服器。 Elasticsearch 新增了較高層級功能來簡化處理 Lucene,包括可存取 Lucene 索引編製和搜尋功能的 RESTful API。 其也提供具大規模延展性、容錯和高可用性的分散式基礎結構。

Elasticsearch 可針對具有複雜搜尋需求的較大雲端原生應用程式,在 Azure 中作為受控服務使用。 Microsoft Azure Marketplace 提供預先設定的範本,可讓開發人員用以在 Azure 上部署 Elasticsearch 叢集。

在 Microsoft Azure Marketplace 內,開發人員可以使用預先設定的範本,其用途是在 Azure 上快速部署 Elasticsearch 叢集。 使用 Azure 受控供應項目,您最多可以部署 50 個資料節點、20 個協調節點,以及三個專用主節點。

摘要

本章詳細探討了雲端原生系統中的資料。 我們一開始會比較整合型應用程式中資料儲存體與雲端原生系統中的資料儲存體模式。 我們探討了在雲端原生系統中實作的資料模式,包括跨服務查詢、分散式交易,以及處理高容量系統的模式。 我們比較了 SQL 與 NoSQL 資料。 我們查看了 Azure 中可用的資料儲存體選項,其中包含以 Microsoft 為中心與開放原始碼選項。 最後,我們討論了雲端原生應用程式中的快取和 Elasticsearch。

參考資料