国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Elasticsearch 底層技術(shù)原理以及性能優(yōu)化實(shí)踐

這篇具有很好參考價(jià)值的文章主要介紹了Elasticsearch 底層技術(shù)原理以及性能優(yōu)化實(shí)踐。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、簡介

1. 概述

Elasticsearch是一個(gè)基于Lucene庫的開源搜索引擎,支持分布式、多租戶和全文搜索功能。它使用了RESTful API接口可以簡化對Elasticsearch的集成和擴(kuò)展。

2. 應(yīng)用場景

Elasticsearch廣泛應(yīng)用于全文搜索、日志存儲(chǔ)和分析、安全事件檢測、業(yè)務(wù)指標(biāo)分析等領(lǐng)域。

二、架構(gòu)

1. 節(jié)點(diǎn)和集群

Elasticsearch是一個(gè)分布式系統(tǒng)由多個(gè)節(jié)點(diǎn)組成。節(jié)點(diǎn)可以分為兩種類型:主節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)

主節(jié)點(diǎn)負(fù)責(zé)協(xié)調(diào)整個(gè)集群中的操作,例如創(chuàng)建或刪除索引、添加或刪除節(jié)點(diǎn)等等。每個(gè)集群只能有一個(gè)主節(jié)點(diǎn),當(dāng)主節(jié)點(diǎn)故障時(shí),其他節(jié)點(diǎn)將會(huì)選舉出新的主節(jié)點(diǎn)。

數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù),并參與搜索操作。在集群中可以同時(shí)存在多個(gè)數(shù)據(jù)節(jié)點(diǎn),每個(gè)數(shù)據(jù)節(jié)點(diǎn)都包含了所有數(shù)據(jù)的一部分副本。

節(jié)點(diǎn)之間通過使用基于TCP的傳輸層通信,使用JSON格式進(jìn)行交互。

2. 索引和分片

Elasticsearch使用索引來組織和存儲(chǔ)數(shù)據(jù)。一個(gè)索引可以看作是一個(gè)關(guān)系型數(shù)據(jù)庫中的一個(gè)表,而每個(gè)文檔則相當(dāng)于一行數(shù)據(jù)。

為了支撐大規(guī)模數(shù)據(jù)存儲(chǔ),Elasticsearch將索引分成多個(gè)分片(shard),每個(gè)分片都是一個(gè)獨(dú)立的Lucene索引。當(dāng)一個(gè)索引被創(chuàng)建時(shí),可以指定分片的數(shù)量,在索引中的每個(gè)文檔將會(huì)被分配到一個(gè)確定的分片中。分片的數(shù)量一旦確定,就不能再更改。

分片帶來了好處,使得每個(gè)分片只需要存儲(chǔ)索引的一小部分?jǐn)?shù)據(jù),從而使它們更容易被存儲(chǔ)在單個(gè)節(jié)點(diǎn)之上。此外,分片還使得Elasticsearch可以水平擴(kuò)展,可以將不同的分片分配給不同的節(jié)點(diǎn)。

下面是Java代碼展示如何創(chuàng)建一個(gè)索引,設(shè)置分片數(shù)量為5,副本數(shù)量為1:

public void createIndex(RestHighLevelClient client, String indexName) throws IOException {
    CreateIndexRequest request = new CreateIndexRequest(indexName);

    // 設(shè)置分片數(shù)量為5,副本數(shù)量為1
    request.settings(Settings.builder()
            .put("index.number_of_shards", 5)
            .put("index.number_of_replicas", 1)
    );

    client.indices().create(request, RequestOptions.DEFAULT);
}

三、查詢操作原理

1. 查詢DSL語法分類

在Elasticsearch中使用Query DSL(查詢領(lǐng)域特定語言)進(jìn)行查詢操作。查詢DSL分為兩大類:查詢查詢和聚合查詢。

1.1. 查詢查詢

查詢查詢用于從索引中獲取單個(gè)或多個(gè)文檔。以下是常用的查詢類型:

  • match 查詢:查找包含指定項(xiàng)的文檔。如下所示:
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
SearchResponse searchResponse = null;

MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("title", "Elasticsearch");
searchSourceBuilder.query(matchQueryBuilder);

SearchRequest searchRequest = new SearchRequest();
searchRequest.indices("index-name");
searchRequest.source(searchSourceBuilder);

searchResponse = client.search(searchRequest, CommonOptions.DEFAULT);
  • term 查詢:查找與指定術(shù)語完全匹配的文檔。如下所示:
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
SearchResponse searchResponse = null;

TermQueryBuilder termQueryBuilder = new TermQueryBuilder("title.keyword", "Elasticsearch");
searchSourceBuilder.query(termQueryBuilder);

SearchRequest searchRequest = new SearchRequest();
searchRequest.indices("index-name");
searchRequest.source(searchSourceBuilder);

searchResponse = client.search(searchRequest, CommonOptions.DEFAULT);
  • bool 查詢:將多個(gè)查詢組合在一起,并通過邏輯運(yùn)算符來確定與查詢的真值。如下所示:
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
SearchResponse searchResponse = null;

MatchQueryBuilder matchQueryBuilder1 = new MatchQueryBuilder("title", "Elasticsearch");
MatchQueryBuilder matchQueryBuilder2 = new MatchQueryBuilder("content", "Java");

BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
boolQueryBuilder.must(matchQueryBuilder1);
boolQueryBuilder.must(matchQueryBuilder2);

searchSourceBuilder.query(boolQueryBuilder);

SearchRequest searchRequest = new SearchRequest();
searchRequest.indices("index-name");
searchRequest.source(searchSourceBuilder);

searchResponse = client.search(searchRequest, CommonOptions.DEFAULT);

1.2. 聚合查詢

聚合查詢用于從索引中獲取匯總信息。以下是常見的聚合類型:

  • avg 聚合:計(jì)算指定字段的平均值。如下所示:
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
SearchResponse searchResponse = null;

AvgAggregationBuilder aggregationBuilder = AggregationBuilders.avg("average_price").field("price");

searchSourceBuilder.aggregation(aggregationBuilder);
searchSourceBuilder.size(0); // return only aggregations and no hits

SearchRequest searchRequest = new SearchRequest();
searchRequest.indices("index-name");
searchRequest.source(searchSourceBuilder);

searchResponse = client.search(searchRequest, CommonOptions.DEFAULT);
  • max 聚合:計(jì)算指定字段的最大值。如下所示:
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
SearchResponse searchResponse = null;

MaxAggregationBuilder aggregationBuilder = AggregationBuilders.max("max_price").field("price");

searchSourceBuilder.aggregation(aggregationBuilder);
searchSourceBuilder.size(0); // return only aggregations and no hits

SearchRequest searchRequest = new SearchRequest();
searchRequest.indices("index-name");
searchRequest.source(searchSourceBuilder);

searchResponse = client.search(searchRequest, CommonOptions.DEFAULT);

2. Lucene 原理基礎(chǔ)

Elasticsearch是基于Lucene庫開發(fā)的。因此了解Lucene的一些基礎(chǔ)原理可以更好地理解Elasticsearch的查詢操作。Lucene是一個(gè)文檔檢索庫,用于快速地搜索大量文檔。以下是Lucene的一些關(guān)鍵概念:

  • Document:文檔是Lucene中的最小檢索單位。每個(gè)文檔都由多個(gè)字段組成。

  • Field:字段表示文檔的內(nèi)容。每個(gè)字段都有一個(gè)名字和值。

  • Analyzer:分析器用于將文本轉(zhuǎn)換為詞條,這些詞條將存儲(chǔ)在倒排索引中。

  • Inverted Index:倒排索引是一個(gè)包含單個(gè)詞匯條目的文檔列表的數(shù)據(jù)結(jié)構(gòu)。它使得快速查找文檔成為可能。

  • TF-IDF:TF-IDF(詞頻 - 逆文檔頻率)是一種常見的檢索評估方法,用于計(jì)算文檔中單詞的重要性。

四、性能優(yōu)化實(shí)踐

1. 集群設(shè)置與調(diào)優(yōu)

1.1 分片

  • 合理設(shè)置分片數(shù)量
    • 分片數(shù)過多會(huì)降低索引和搜索的性能
    • 建議每個(gè)節(jié)點(diǎn)最少設(shè)置兩個(gè)分片
  • 分片平衡
    • Elasticsearch自動(dòng)將副本分配到其他節(jié)點(diǎn)上
    • 考慮使用Shard Allocation Awareness優(yōu)化跨機(jī)架部署,避免機(jī)架單點(diǎn)故障帶來的影響

1.2 副本

  • 合理設(shè)置副本數(shù)量
    • 副本數(shù)過多會(huì)增加集群負(fù)載,導(dǎo)致查詢變慢
    • 建議副本數(shù)不超過節(jié)點(diǎn)數(shù)-1
  • 副本位置
    • 數(shù)據(jù)中心可用性高:副本置于其他服務(wù)器(或數(shù)據(jù)中心)
    • 數(shù)據(jù)中心可用性低:副本置于相同服務(wù)器(或數(shù)據(jù)中心)

1.3 內(nèi)存

  • 設(shè)置Xmx和Xms參數(shù),限制JVM使用的最大和最小內(nèi)存
  • 注意JVM內(nèi)存與操作系統(tǒng)緩存的折衷,確保JVM能充分利用一定量的操作系統(tǒng)緩存

2. 索引和查詢性能優(yōu)化

2.1 索引

  • 盡量減少分詞器的使用
  • 禁用不必要的字段
  • 確定合適的網(wǎng)絡(luò)延遲參數(shù),選擇正確的同步級別
  • 通過Bulk API批量插入數(shù)據(jù)

2.2 查詢

  • 查詢時(shí)避免全文搜索和模糊匹配
  • 排序時(shí)應(yīng)使用docvalue進(jìn)行優(yōu)化
  • 盡量使用過濾器而不是查詢器實(shí)現(xiàn)準(zhǔn)確匹配

3. 內(nèi)存及磁盤使用技巧

3.1 JVM內(nèi)存分配

  • 應(yīng)使用cgroup限制Elasticsearch進(jìn)程的內(nèi)存使用
  • 使用SSD硬盤加速索引和查詢操作
  • 選擇合適的JVM垃圾回收策略以減輕內(nèi)存壓力

4. 正確使用搜索建議和聚合功能

4.1 搜索建議

  • 使用completion suggester代替phrase suggester
  • 建議根據(jù)具體場景合理設(shè)置suggest條目數(shù)量

4.2 聚合

  • 對聚合結(jié)果進(jìn)行分析,確定最優(yōu)聚合方式
  • 避免數(shù)據(jù)分散,在數(shù)據(jù)時(shí)間窗口內(nèi)按照時(shí)間排序

五、擴(kuò)展與集成

1. 插件開發(fā)以及集成

在Elasticsearch中插件可以擴(kuò)展和定制Elasticsearch的功能,包括增加新的API端點(diǎn)、集成外部組件或是創(chuàng)建自己的查詢方式等等。要開發(fā)和集成插件,可以按照以下步驟進(jìn)行:

步驟1:編寫插件代碼

開發(fā)插件可以使用Java編寫,并打包成jar文件,也可以使用Elasticsearch提供的Gradle插件進(jìn)行構(gòu)建。在插件代碼中,需要實(shí)現(xiàn)Plugin接口,并覆蓋getSettings()方法以提供插件設(shè)置,默認(rèn)情況下,插件不需要任何設(shè)置。此外還需要實(shí)現(xiàn)onModule()方法來注冊各種組件,包括自定義的QueryBuilder、Aggregator等。例如以下代碼展示如何注冊一個(gè)自定義查詢:

public class MyQueryPlugin extends Plugin {

    @Override
    public Settings getSettings() {
        return Settings.builder()
                .put("my_setting", "default_value")
                .build();
    }

    @Override
    public List<QuerySpec<?>> getQueries(QuerySpecRegistry querySpecRegistry) {
        return Collections.singletonList(
                new QuerySpec.Builder("myQuery", MyQueryBuilder::new, MyQueryBuilder::fromXContent)
                        .build()
        );
    }
    
    // 其他組件的注冊
}

步驟2:打包插件

完成插件代碼編寫后需要將插件打包為.zip格式,并放入Elasticsearch的plugins目錄下。要注意的是在打包插件時(shí),需要在根目錄下創(chuàng)建es-plugin.properties文件,并設(shè)置插件的名字和版本號,例如:

name=my-plugin
version=1.0.0

步驟3:安裝插件

將插件打包好并放入plugins目錄后,需要重啟Elasticsearch節(jié)點(diǎn)以完成插件安裝。如果一切正常,可以在Elasticsearch的日志中看到類似于以下的輸出信息:

[2019-04-06T15:55:21,926][INFO ][o.e.p.PluginsService     ] [node-1] loaded module [my-module]
[2019-04-06T15:55:21,927][INFO ][o.e.p.PluginsService     ] [node-1] loaded plugin [my-plugin]

2. 生態(tài)系統(tǒng)

Elasticsearch生態(tài)系統(tǒng)提供了大量的基于Elasticsearch的工具和庫,包括:

  • Kibana:數(shù)據(jù)可視化和分析平臺(tái)
  • Logstash:日志流處理工具
  • Beats:輕量的數(shù)據(jù)采集代理
  • Elasticsearch-Hadoop:連接Hadoop生態(tài)系統(tǒng)和Elasticsearch
  • elasticsearch-mapper-attachments插件:支持在Elasticsearch中索引和搜索各種文檔格式

這些工具和庫可以一起使用,構(gòu)建出更加強(qiáng)大、靈活和高效的數(shù)據(jù)分析和搜索方案。

六、大數(shù)據(jù)技術(shù)集成

1. Hadoop集成

1.1 Hadoop技術(shù)介紹

Hadoop是一個(gè)開源的分布式數(shù)據(jù)處理框架,最初是為了處理大規(guī)模的結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)而設(shè)計(jì)。它包括了HDFS(Hadoop Distributed File System)和MapReduce兩個(gè)核心組件,可以實(shí)現(xiàn)大規(guī)模數(shù)據(jù)存儲(chǔ)、處理和分析。

Elasticsearch是一個(gè)開源的搜索引擎,基于Lucene構(gòu)建,支持全文搜索、分面搜索、結(jié)構(gòu)化搜索等功能。它被廣泛應(yīng)用在企業(yè)級搜索、日志分析、安全分析等領(lǐng)域。

1.2 Hadoop集成方案

Hadoop與Elasticsearch集成主要有以下兩種方式:

  1. 使用Elasticsearch的Hadoop插件,將Elasticsearch作為Hadoop的輸出格式,可以方便地把Hadoop的計(jì)算結(jié)果寫入到Elasticsearch中。

  2. 使用Hadoop的Elasticsearch插件,將Elasticsearch作為Hadoop的輸入格式,可以直接從Elasticsearch中讀取數(shù)據(jù)進(jìn)行計(jì)算。

1.3 Hadoop集成的優(yōu)點(diǎn)

Hadoop與Elasticsearch集成可以帶來以下幾個(gè)優(yōu)點(diǎn):

  1. 處理大規(guī)模數(shù)據(jù):Hadoop可以有效地處理大規(guī)模的數(shù)據(jù),而Elasticsearch則可以對這些數(shù)據(jù)進(jìn)行高效的檢索和分析,結(jié)合起來可以實(shí)現(xiàn)大規(guī)模數(shù)據(jù)的存儲(chǔ)、處理和分析。

  2. 快速檢索:由于Elasticsearch的搜索引擎支持全文搜索、分面搜索等功能,可以快速地檢索出需要的數(shù)據(jù)。

  3. 靈活性:Hadoop可以根據(jù)數(shù)據(jù)的不同進(jìn)行多種計(jì)算操作,而Elasticsearch也可以根據(jù)不同的需求進(jìn)行數(shù)據(jù)的不同處理,這兩個(gè)框架的靈活性相互補(bǔ)充,可以滿足不同場景的需求。

2. Spark集成

2.1 Spark技術(shù)介紹

Spark是一個(gè)開源的大數(shù)據(jù)處理框架,可以進(jìn)行內(nèi)存計(jì)算、離線批處理、流式處理、機(jī)器學(xué)習(xí)等多種計(jì)算。它具有高速的內(nèi)存計(jì)算能力、良好的易用性和豐富的生態(tài)系統(tǒng)。

Spark與Elasticsearch集成可以帶來以下幾個(gè)優(yōu)點(diǎn):

  1. 高速的內(nèi)存計(jì)算:Spark擁有高速的內(nèi)存計(jì)算能力,可以快速地處理大規(guī)模數(shù)據(jù)。而Elasticsearch又可以快速地檢索所需的數(shù)據(jù),兩者協(xié)同可以更快地完成數(shù)據(jù)處理任務(wù)。

  2. 良好的易用性:Spark的API具有良好的易用性,操作簡單直觀。通過Spark對Elasticsearch中的數(shù)據(jù)進(jìn)行處理,可以方便地進(jìn)行數(shù)據(jù)分析和挖掘。

2.2 Spark集成方案

Spark可以通過Elasticsearch Hadoop插件實(shí)現(xiàn)與Elasticsearch的集成,這個(gè)插件可以將Spark作為Hadoop的一個(gè)計(jì)算引擎,可以讀取和寫入Elasticsearch中的數(shù)據(jù)。具體步驟如下:

  1. 下載并安裝Elasticsearch Hadoop插件。

  2. 在Spark應(yīng)用程序中添加相關(guān)依賴。

  3. 在Spark應(yīng)用程序中使用Spark SQL或DataFrame API連接Elasticsearch并進(jìn)行數(shù)據(jù)處理。

2.3 Spark集成的優(yōu)點(diǎn)

Spark與Elasticsearch集成可以帶來以下幾個(gè)優(yōu)點(diǎn):

  1. 快速處理大數(shù)據(jù):Spark可以快速地處理大規(guī)模數(shù)據(jù),而Elasticsearch可以快速地檢索所需的數(shù)據(jù),兩者協(xié)同可以更快地完成數(shù)據(jù)處理任務(wù)。

  2. 容錯(cuò)性:Spark具有良好的容錯(cuò)機(jī)制,可以確保數(shù)據(jù)處理任務(wù)的穩(wěn)定運(yùn)行。而Elasticsearch也有自己的容錯(cuò)機(jī)制,可以防止數(shù)據(jù)丟失和數(shù)據(jù)損壞。

3. Logstash集成

3.1 Logstash技術(shù)介紹

Logstash是一個(gè)開源的數(shù)據(jù)收集、處理和轉(zhuǎn)發(fā)工具,可以將各種數(shù)據(jù)源(如Web服務(wù)器、數(shù)據(jù)庫、消息隊(duì)列等)中的數(shù)據(jù)采集并送到不同的目的地。

Logstash可以通過Elasticsearch輸出插件將數(shù)據(jù)寫入Elasticsearch中,這樣就可以快速地實(shí)現(xiàn)數(shù)據(jù)的檢索和分析。

3.2 Logstash集成方案

Logstash可以通過Elasticsearch輸出插件實(shí)現(xiàn)與Elasticsearch的集成,具體步驟如下:

  1. 下載并安裝Logstash和Elasticsearch。

  2. 在Logstash配置文件中添加Elasticsearch輸出插件,并指定Elasticsearch的連接信息和數(shù)據(jù)的索引名稱等信息。

  3. 啟動(dòng)Logstash并開始數(shù)據(jù)采集和處理任務(wù)。

3.3 Logstash集成的優(yōu)點(diǎn)

Logstash與Elasticsearch集成可以帶來以下幾個(gè)優(yōu)點(diǎn):

  1. 高效的數(shù)據(jù)處理:Logstash可以快速地從各種數(shù)據(jù)源中采集數(shù)據(jù)并進(jìn)行處理,而Elasticsearch可以對這些數(shù)據(jù)進(jìn)行高效的檢索和分析。

  2. 靈活性:通過Logstash的數(shù)據(jù)處理管道,可以對不同類型的數(shù)據(jù)進(jìn)行靈活的處理和轉(zhuǎn)換,而Elasticsearch可以根據(jù)不同的需求進(jìn)行數(shù)據(jù)的不同處理,這兩個(gè)框架的靈活性相互補(bǔ)充,可以滿足不同場景的需求。文章來源地址http://www.zghlxwxcb.cn/news/detail-474089.html

到了這里,關(guān)于Elasticsearch 底層技術(shù)原理以及性能優(yōu)化實(shí)踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Hive性能調(diào)優(yōu):Hive優(yōu)化技術(shù)以及Hive集群規(guī)劃

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) Apache Hive是一個(gè)開源的分布式數(shù)據(jù)倉庫軟件,可以用來進(jìn)行數(shù)據(jù)提取、轉(zhuǎn)換、加載(ETL)、查詢等功能。作為Hadoop生態(tài)系統(tǒng)的一員,Hive具有強(qiáng)大的分析能力、靈活的數(shù)據(jù)定義、數(shù)據(jù)處理、數(shù)據(jù)分析和可擴(kuò)展性,是一個(gè)理想的企業(yè)級數(shù)據(jù)倉庫解決

    2024年02月06日
    瀏覽(22)
  • Elasticsearch權(quán)威指南:深度解析搜索技術(shù)核心概念、原理及實(shí)踐

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 2010年,當(dāng)時(shí)僅僅30歲的Elasticsearch創(chuàng)始人黃文堅(jiān)就率先發(fā)布了開源分布式搜索引擎Elasticsearch。從此, Elasticsearch 名揚(yáng)天下,成為了當(dāng)前搜索領(lǐng)域的翹楚。隨著 Elasticsearch 的快速崛起,越來越多的人開始關(guān)注并應(yīng)用 Elasticsearch 來進(jìn)行搜索服務(wù)。

    2024年02月10日
    瀏覽(25)
  • 【Spring Cloud】基于 Feign 實(shí)現(xiàn)遠(yuǎn)程調(diào)用,深入探索 Feign 的自定義配置、性能優(yōu)化以及最佳實(shí)踐方案

    【Spring Cloud】基于 Feign 實(shí)現(xiàn)遠(yuǎn)程調(diào)用,深入探索 Feign 的自定義配置、性能優(yōu)化以及最佳實(shí)踐方案

    在微服務(wù)架構(gòu)中,服務(wù)之間的通信是至關(guān)重要的,而遠(yuǎn)程調(diào)用則成為實(shí)現(xiàn)這種通信的一種常見方式。在 Java 中,使用 RestTemplate 是一種傳統(tǒng)的遠(yuǎn)程調(diào)用方式,但它存在一些問題,如代碼可讀性差、編程體驗(yàn)不一致以及參數(shù)復(fù)雜URL難以維護(hù)等。 在本文中,我們將探討如何通過使

    2024年02月04日
    瀏覽(19)
  • Flink:處理大規(guī)模復(fù)雜數(shù)據(jù)集的最佳實(shí)踐深入探究Flink的數(shù)據(jù)處理和性能優(yōu)化技術(shù)

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 隨著互聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)等新型網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,企業(yè)對海量數(shù)據(jù)的處理日益依賴,而大數(shù)據(jù)分析、決策支持、風(fēng)險(xiǎn)控制等領(lǐng)域都需要海量的數(shù)據(jù)處理能力。如何高效、快速地處理海量數(shù)據(jù)、提升處理效率、降低成本,是當(dāng)下處理

    2024年02月13日
    瀏覽(27)
  • AIGC時(shí)代:大模型ChatGPT的技術(shù)實(shí)現(xiàn)原理、行業(yè)實(shí)踐以及商業(yè)變現(xiàn)途徑

    大數(shù)據(jù)與人工智能實(shí)戰(zhàn)專家—周紅偉老師 法國科學(xué)院數(shù)據(jù)算法博士/曾任豬八戒大數(shù)據(jù)科學(xué)家/曾任馬上消費(fèi)金融風(fēng)控負(fù)責(zé)人 2023年,以ChatGPT為代表的接近人類水平的對話機(jī)器人,AIGC不斷刷爆網(wǎng)絡(luò),其強(qiáng)大的內(nèi)容生成能力給人們帶來了巨大的震撼。學(xué)術(shù)界和產(chǎn)業(yè)界也都形成共識

    2024年02月22日
    瀏覽(36)
  • ElasticSearch 底層讀寫原理

    ElasticSearch 底層讀寫原理

    ? 寫請求是寫入 primary shard,然后同步給所有的 replica shard;讀請求可以從 primary shard 或 replica shard 讀取,采用的是隨機(jī)輪詢算法。 1.選擇任意一個(gè)DataNode發(fā)送請求,例如:node2。此時(shí),node2就成為一個(gè)coordinating node(協(xié)調(diào)節(jié)點(diǎn)) 2.計(jì)算得到文檔要寫入的分片 shard = hash(routing)

    2024年04月12日
    瀏覽(27)
  • ElasticSearch底層讀寫工作原理

    ElasticSearch底層讀寫工作原理

    目錄 ES底層讀寫工作原理分析 ES寫入數(shù)據(jù)的過程 ES讀取數(shù)據(jù)的過程 根據(jù)id查詢數(shù)據(jù)的過程 根據(jù)查詢數(shù)據(jù)的過程 寫數(shù)據(jù)底層原理 ? ? ? ? ?寫請求是寫入 primary shard,然后同步給所有的 replica shard;讀請求可以從 primary shard 或 replica shard 讀取,采用的是隨機(jī)輪詢算法。

    2024年02月21日
    瀏覽(17)
  • Elasticsearch底層原理分析——新建、索引文檔

    Elasticsearch底層原理分析——新建、索引文檔

    8.1.0 Elasticsearch Node的角色 與下文流程相關(guān)的角色介紹: Node Roles 配置 主要功能說明 master node.roles: [ master ] 有資格參與選舉成為master節(jié)點(diǎn),從而進(jìn)行集群范圍的管理工作,如創(chuàng)建或刪除索引、跟蹤哪些節(jié)點(diǎn)是集群的一部分以及決定將哪些分片分配給哪些節(jié)點(diǎn)等 data node.roles:

    2024年02月04日
    瀏覽(49)
  • 五、淺析[ElasticSearch]底層原理與分組聚合查詢

    五、淺析[ElasticSearch]底層原理與分組聚合查詢

    集群節(jié)點(diǎn)介紹 es配置文件夾中 客戶端節(jié)點(diǎn) 當(dāng)主節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)配置都設(shè)置為false的時(shí)候,該節(jié)點(diǎn)只能處理路由請求,處理搜索,分發(fā)索引操作等,從本質(zhì)上來說該客戶節(jié)點(diǎn)表現(xiàn)為智能負(fù)載平衡器。獨(dú)立的客戶端節(jié)點(diǎn)在一個(gè)比較大的集群中是非常有用的,他協(xié)調(diào)主節(jié)點(diǎn)和數(shù)據(jù)節(jié)

    2024年02月16日
    瀏覽(18)
  • Android復(fù)雜UI的性能優(yōu)化實(shí)踐 - PTQBookPageView 性能優(yōu)化記錄

    Android復(fù)雜UI的性能優(yōu)化實(shí)踐 - PTQBookPageView 性能優(yōu)化記錄

    作者:彭泰強(qiáng) 要做性能優(yōu)化,首先得知道性能怎么度量、怎么表示。因?yàn)樾阅苁且粋€(gè)很抽象的詞,我們必須把它量化、可視化。那么,因?yàn)槭荱I組件優(yōu)化,我首先選用了 GPU呈現(xiàn)模式分析 這一工具。 在手機(jī)上的開發(fā)者模式里可以開啟 GPU呈現(xiàn)(渲染)模式分析 這一工具,有的

    2024年02月14日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包