1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        開始步入Elasticsearch的世界:初探elasticsearch

        共 3941字,需瀏覽 8分鐘

         ·

        2021-08-28 09:56

        前言

        最近我參與了一個(gè)重構(gòu)項(xiàng)目,由于這個(gè)下項(xiàng)目并發(fā)量比較大,而且經(jīng)常出現(xiàn)MQ丟數(shù)據(jù)的問題,所以工單特別多,為了解決這個(gè)歷史遺留問題,我們開啟了為期兩個(gè)月的重構(gòu)之旅。

        目前,這個(gè)項(xiàng)目剛剛啟動(dòng),現(xiàn)在的核心架構(gòu),主要依托于redis,總的來說就是,所有的數(shù)據(jù)交互均依托于redis,不管是新增、查詢、更新、刪除等,都在redis上操作,然后通過一個(gè)DAL組件完成數(shù)據(jù)庫數(shù)據(jù)同步。就是這樣的架構(gòu),讓我們在開發(fā)的時(shí)候簡直要抓狂了,為了一個(gè)在數(shù)據(jù)庫層面帶索引的查詢,我們需要從redis中拿出所有數(shù)據(jù),然后從list中拿出我們需要的數(shù)據(jù),感覺操作太復(fù)雜了,但是沒辦法呀,架構(gòu)師就是這么定的。

        因?yàn)楹笃谝?code style="overflow-wrap: break-word;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(255, 100, 65);">redis換成ES,所以我就提前把相關(guān)內(nèi)容學(xué)起來,以備不時(shí)之需。

        elasticsearch

        簡介

        elasticsearch是什么?根據(jù)它的字面意思,我們知道它和搜索有關(guān),官方給出的解釋是:

        Elasticsearch是一個(gè)分布式的免費(fèi)開源搜索和分析引擎,適用于包括文本、數(shù)字、地理空間、結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)等在內(nèi)的所有類型的數(shù)據(jù)。ElasticsearchApache Lucene的基礎(chǔ)上開發(fā)而成,由 Elasticsearch N.V.(即現(xiàn)在的 Elastic)于 2010 年首次發(fā)布。Elasticsearch以其簡單的 REST 風(fēng)格 API、分布式特性、速度和可擴(kuò)展性而聞名,是 Elastic Stack的核心組件;Elastic Stack是一套適用于數(shù)據(jù)采集、擴(kuò)充、存儲(chǔ)、分析和可視化的免費(fèi)開源工具。人們通常將Elastic Stack 稱為 ELK Stack(代指Elasticsearch、LogstashKibana),目前 Elastic Stack包括一系列豐富的輕量型數(shù)據(jù)采集代理,這些代理統(tǒng)稱為 Beats,可用來向 Elasticsearch發(fā)送數(shù)據(jù)。

        簡單來說,elasticsearch可以用以下幾個(gè)關(guān)鍵字概括:

        • 分布式
        • 開源
        • 搜索和分析引擎

        做后端開發(fā)的小伙伴應(yīng)該都清楚,在我們所有的系統(tǒng)中,基本上都是讀多寫少,所以真正制約一個(gè)系統(tǒng)性能是查詢,是搜索,如果有一款組件可以解決數(shù)據(jù)搜索的問題,那系統(tǒng)的性能肯定會(huì)得到飛速提升,而elasticsearch就是這樣一款組件?,F(xiàn)階段,很多企業(yè)都在用es,目前被提及最多的是攜程,攜程是大規(guī)模在使用,單日索引數(shù)據(jù)條數(shù)600億,這就有點(diǎn)強(qiáng)了。

        好了,關(guān)于簡介就先到這里,更多信息各位小伙伴可以自己檢索,下面我們看下如何安裝使用es。

        下載

        訪問官方網(wǎng)站,選擇對應(yīng)版本,然后下載。官方地址如下:

        https://www.elastic.co/cn/downloads/elasticsearch

        這里我直接選擇windows,各位小伙伴根據(jù)自己的操作系統(tǒng)進(jìn)行選擇。

        安裝

        下載過程還是很快的,下載完成后直接解壓壓縮文件即可:

        下面我們簡單介紹下,elasticsearch的文件結(jié)構(gòu):

        • bin:存放可執(zhí)行文件,包括腳本等,一般我們用的第三方組件都是這樣的結(jié)構(gòu),比如zknacos

        • configelasticsearch的配置文件

        • jdk:這個(gè)各位小伙伴應(yīng)該很熟悉,目前elasticsearch-7.14.0下的jdk版本比較高是16.0.1

        • ``libelasticsearch本身應(yīng)該是基于java開發(fā)的,所以lib就是elasticsearch`要用到的包,其中也包括它自身應(yīng)用的包

        • logs:存放運(yùn)行日志,目前是空的

        • modules:這個(gè)應(yīng)該是elasticsearch可以擴(kuò)展的模塊,默認(rèn)情況下好多模塊是不啟用的

        • plugins:這個(gè)應(yīng)該是存放第三方擴(kuò)展組件的,目前該文件夾是空的。

        好了,elasticsearch的目錄結(jié)構(gòu)我們暫時(shí)就說這么多,下面看下如何啟動(dòng)elasticsearch

        啟動(dòng)

        啟動(dòng)elasticsearch也很簡單,只需要執(zhí)行bin文件夾下的腳本即可:

        elasticsearch.bat

        如果啟動(dòng)報(bào)錯(cuò),檢查下本地jdk版本,最好選擇16及以上版本,因?yàn)槲冶镜匕惭b的就是16,所以啟動(dòng)沒有報(bào)錯(cuò),但是在控制臺有如下提示:

        按照提示信息,elasticsearchJAVA_HOME需要設(shè)置為ES_JAVA_HOMEJAVA_HOME不推薦使用,應(yīng)該是怕和jdk沖突吧。

        從啟動(dòng)日志我們看出以下幾點(diǎn):

        • 啟動(dòng)的時(shí)候會(huì)加載modules的文件,具體各個(gè)模塊的用途,我們暫時(shí)先不研究

        • elasticsearch服務(wù)默認(rèn)情況下會(huì)用到93009200,其中9300的端口協(xié)議未知,但是肯定不是http協(xié)議,9200是可以直接訪問的:

        • 訪問127.0.0.1:9200,如果返回值結(jié)果如上,則表明elasticsearch啟動(dòng)成功。

        測試

        安裝啟動(dòng)完成后,127.0.0.1:9200訪問也ok,說明es已經(jīng)部署ok,下面我們對它進(jìn)行一些簡單測試。

        在前面的簡介中,我們知道es對外提供了 REST 風(fēng)格 API,所以我們下面的測試都是基于REST接口進(jìn)行的,為了方便我們后面就直接用curl工具( 或者你也可以用postman)進(jìn)行操作了。

        REST

        下面是rest協(xié)議的幾種常用請求類別以及他們表示的含義,我們對es的操作也就是基于他們進(jìn)行的:

        • PUT請求:表示更新
        • POST請求:表示寫
        • DELETE請求:表示刪除
        • GET請求:表示查詢
        • HEAD請求:與GET類似,但是不返回消息體
        • OPTIONS請求:獲取服務(wù)器支持的HTTP請求方法
        • TRACE請求:用來調(diào)試web服務(wù)器連接的HTTP方式
        • CONNECT請求:把服務(wù)器作為跳板,讓服務(wù)器代替用戶去訪問其它網(wǎng)頁,之后把數(shù)據(jù)原原本本的返回給用戶

        關(guān)于Rest協(xié)議我們暫時(shí)先說這么多,明天我們再詳細(xì)說明。

        以上這些請求中,es只支持GET,  PUT,  DELETE,  HEAD,其他的是不支持的:

        創(chuàng)建索引
        curl -X PUT 127.0.0.1:9200/syske

        返回結(jié)果:

        {
            "acknowledged":true,
            "shards_acknowledged":true,
            "index":"syske"
        }
        訪問索引
        curl -X GET 127.0.0.1:9200/syske

        返回結(jié)果:

          {
         "syske": {
          "aliases": {},
          "mappings": {},
          "settings": {
           "index": {
            "routing": {
             "allocation": {
              "include": {
               "_tier_preference""data_content"
              }
             }
            },
            "number_of_shards""1",
            "provided_name""syske",
            "creation_date""1629869376742",
            "number_of_replicas""1",
            "uuid""cFI0E1VxQrKyxNiH1qZBfA",
            "version": {
             "created""7140099"
            }
           }
          }
         }
        }
        刪除索引
        curl -X DELETE 127.0.0.1:9200/syske

        返回結(jié)果

        {
            "acknowledged":true
        }

        說明:索引就類似于我們傳統(tǒng)數(shù)據(jù)庫中的庫,一個(gè)索引就對應(yīng)一個(gè)數(shù)據(jù)庫。

        總結(jié)

        今天我們主要分享了es的下載、安裝和測試,整體內(nèi)容很簡單,也不需要任何復(fù)雜的配置,只要確保es可以在本地正常啟動(dòng)即可。好了,es的簡單入門我們今天就先到這里,我們從明天開始學(xué)習(xí)es的其他基本術(shù)語和用法。

        - END -


        瀏覽 28
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            与子敌伦刺激对白播放免费 | 日韩精品欧美成人高清一区二区 | 日本一线天无码A片一区二区三区 | 操粉逼 | 一道本一区二区三区久久久久 | 成人久久精品人妻一区二区三区 | 国产啊灬啊灬啊灬快好深视频 | 亚洲有码在线 | 操巨乳美女 | 肉丝肉足丝袜一区二区三区 |