国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ES冷熱架構

IT那活兒 / 3027人閱讀
ES冷熱架構

點擊上方“IT那活兒”,關注后了解更多內容,不管IT什么活兒,干就完了!!!



冷熱架構介紹
為了保證Elasticsearch的讀寫性能,官方建議磁盤使用SSD固態硬盤。
然而Elasticsearch要解決的是海量數據的存儲和檢索問題,海量的數據就意味需要大量的存儲空間,如果都使用SSD固態硬盤成本將成為一個很大的問題,這也是制約許多企業和個人使用Elasticsearch的因素之一。為了解決這個問題,Elasticsearch冷熱分離架構應運而生。
冷熱架構是一項十分強大的功能,能夠讓將 Elasticsearch 部署劃分為“熱”數據節點和“冷”數據節點。
熱數據節點處理所有新輸入的數據,并且存儲速度也較快,以便確保快速地采集和檢索數據。
冷節點的存儲密度則較大,如需在較長保留期限內保留日志數據,不失為一種具有成本效益的方法。
將這兩種類型的數據節點結合到一起后,便能夠有效地處理輸入數據,并將其用于查詢,同時還能在節省成本的前提下在較長時間內保留數據。此架構對日志用例來說尤其大有幫助,因為在日志用例中,人們的大部分精力都會專注于近期的日志(例如最近兩周),而較早的日志(由于合規性或者其他原因仍需要保留)則可以接受較慢的查詢時間。

冷熱架構架構圖



典型應用場景
一句話:在成本有限的前提下,讓客戶關注的實時數據和歷史數據硬件隔離,最大化解決客戶反應的響應時間慢的問題。
業務場景描述:
每日增量6TB日志數據,高峰時段寫入及查詢頻率都較高,集群壓力較大,查詢ES時,常出現查詢緩慢問題。
ES集群的索引寫入及查詢速度主要依賴于磁盤的IO速度,冷熱數據分離的關鍵為使用SSD磁盤存儲熱數據,提升查詢效率。
若全部使用SSD,成本過高,且存放冷數據較為浪費,因而使用普通SATA磁盤與SSD磁盤混搭,可做到資源充分利用,性能大幅提升的目標。



測試環境配置





冷熱分離架構實現
ElasticSearch冷熱分離架構是一種思想,其實現原理是使用ElasticSearch的路由完成,在data節點設置對應的路由,然后在創建索引庫時指定分布到那些服務器,過一段時間之后,根據業務要求在將這些索引庫的數據進行遷移到其他data節點中。
--hot節點參數配置:
cluster.name : es-cluster
node.name : es01
node.master : true
node.data : true
network.host : 192.168.43.137
transport.tcp.port : 9300
http.port : 9200
http.cors.enabled : true
http.cors.allow-origin : "*"
bootstrap.memory_lock : true
path.data : /home/elasticsearch/data
path.logs : /home/elasticsearch/logs
discovery.zen.ping.unicast.hosts : ["192.168.43.137:9300","192.168.43.137:9301", "192.168.43.138:9300", "192.168.43.139:9300", "192.148.43.140:9300"]
discovery.zen.minimum_master_nodes : 1
xpack.security.enabled : true
xpack.security.transport.ssl.enabled : true
xpack.security.transport.ssl.verification_mode: certificate
xpack.ssl.key: elasticsearch-6.8.2/elasticsearch-6.8.2.key
xpack.ssl.certificate: elasticsearch-6.8.2/elasticsearch-6.8.2.crt
xpack.ssl.certificate_authorities: ca/ca.crt
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
node.attr.box_type: hot


cluster.name : es-cluster
node.name : es02
node.master : false
node.data : true
network.host : 192.168.43.138
transport.tcp.port : 9300
http.port : 9200
http.cors.enabled : true
http.cors.allow-origin : "*"
bootstrap.memory_lock : true
path.data : /home/elasticsearch/data
path.logs : /home/elasticsearch/logs
discovery.zen.ping.unicast.hosts : ["192.168.43.137:9300","192.168.43.137:9301", "192.168.43.138:9300", "192.168.43.139:9300", "192.148.43.140:9300"]
discovery.zen.minimum_master_nodes : 1
xpack.security.enabled : true
xpack.security.transport.ssl.enabled : true
xpack.security.transport.ssl.verification_mode: certificate
xpack.ssl.key: elasticsearch-6.8.2/elasticsearch-6.8.2.key
xpack.ssl.certificate: elasticsearch-6.8.2/elasticsearch-6.8.2.crt
xpack.ssl.certificate_authorities: ca/ca.crt
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
node.attr.box_type: hot


cluster.name : es-cluster
node.name : node-2021070702
node.master : false
node.data : true
network.host : 192.168.43.137
transport.tcp.port : 9300
http.port : 9200
http.cors.enabled : true
http.cors.allow-origin : "*"
bootstrap.memory_lock : true
discovery.zen.ping.unicast.hosts : ["192.168.43.137:9300","192.168.43.137:9301", "192.168.43.138:9300", "192.168.43.139:9300", "192.148.43.140:9300"]
discovery.zen.minimum_master_nodes : 1
xpack.security.enabled : true
xpack.security.transport.ssl.enabled : true
xpack.security.transport.ssl.verification_mode: certificate
xpack.ssl.key: elasticsearch-6.8.2/elasticsearch-6.8.2.key
xpack.ssl.certificate: elasticsearch-6.8.2/elasticsearch-6.8.2.crt
xpack.ssl.certificate_authorities: ca/ca.crt
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
node.attr.box_type: hot


cluster.name : es-cluster
node.name : es03
node.master : false
node.data : true
network.host : 192.168.43.139
transport.tcp.port : 9300
http.port : 9200
http.cors.enabled : true
http.cors.allow-origin : "*"
bootstrap.memory_lock : true
path.data : /home/elasticsearch/data
path.logs : /home/elasticsearch/logs
discovery.zen.ping.unicast.hosts : ["192.168.43.137:9300","192.168.43.137:9301", "192.168.43.138:9300", "192.168.43.139:9300", "192.148.43.140:9300"]
discovery.zen.minimum_master_nodes : 1
xpack.security.enabled : true
xpack.security.transport.ssl.enabled : true
xpack.security.transport.ssl.verification_mode: certificate
xpack.ssl.key: elasticsearch-6.8.2/elasticsearch-6.8.2.key
xpack.ssl.certificate: elasticsearch-6.8.2/elasticsearch-6.8.2.crt
xpack.ssl.certificate_authorities: ca/ca.crt
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
node.attr.box_type: cold
--cold節點參數配置:
cluster.name : es-cluster
node.name : es04
node.master : false
node.data : true
network.host : 192.168.43.140
transport.tcp.port : 9300
http.port : 9200
http.cors.enabled : true
http.cors.allow-origin : "*"
bootstrap.memory_lock : true
path.data : /home/elasticsearch/data
path.logs : /home/elasticsearch/logs
discovery.zen.ping.unicast.hosts:["192.168.43.137:9300","192.168.43.137:9301","192.168.43.138:9300", "192.168.43.139:9300", "192.148.43.140:9300"]
discovery.zen.minimum_master_nodes : 1
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.ssl.key: elasticsearch-6.8.2/elasticsearch-6.8.2.key
xpack.ssl.certificate: elasticsearch-6.8.2/elasticsearch-6.8.2.crt
xpack.ssl.certificate_authorities: ca/ca.crt
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
node.attr.box_type: cold




索引庫設置
在創建索引庫的時候需要指定默認索引庫的分片歸屬,如果沒有指定,就會根據ElasticSearch默認進行均勻分布。這里我們將索引庫默認創建到hot節點中,滿足業務條件之后在使用命令或代碼將該索引庫設置到冷節點中。
索引示例:
創建索引test_20220125,主分片數5,副本數1,索引刷新時間10s,索引存放至hot節點。
curl -XPUT -H "Content-Type: application/json" http://elastic:qwer123@192.168.43.138:9200/test_20220125 -d
{
  "index":"test_20220125",
  "settings": {
    "number_of_shards" :5,
    "number_of_replicas" : 1,
    "refresh_interval" : "10s",
    "index.routing.allocation.require.box_type":"hot"
  }
}
查看此時該索引的分片分布情況,分片全部分布在hot節點上。
向索引test_20220125中插入數據:
curl -H "Content-Type: application/json" -XPOST -u elastic:qwer123 -s http://192.168.43.139:9200/test_20220125/_doc -d 
{
"name":"dd",
"age":"23",
"profession":"dd"
}
查詢索引test_20220125數據:
curl -H "Content-Type: application/json" -XGET -u elastic:qwer123 -s http://192.168.43.138:9200/test_20220125/_search?pretty -d
{
"size" : 1
}



將該索引遷移至cold節點:
curl -XPUT -H "Content-Type: application/json" http://elastic:qwer123@192.168.43.138:9200/test_20220125/_settings -d
{
"index.routing.allocation.require.box_type":"cold"
}
查看此時該索引的分片分布情況,分片全部遷移至cold節點上。
測試此時索引test_20220125是否正常,可以看到索引已正常遷移至cold節點,索引可正常查詢寫入。
插入一條數據:
curl -H "Content-Type: application/json" -XPOST -u elastic:qwer123 -s http://192.168.43.139:9200/test_20220125/_doc -d 
{
"name":"cc",
"age":"26",
"profession":"cc"
}
查看索引數據:
curl -H "Content-Type: application/json" -XGET -u elastic:qwer123 -s http://192.168.43.138:9200/test_20220125/_search?pretty -d
{
"size" : 2
}


本文作者:劉能

本文來源:IT那活兒(上海新炬王翦團隊)


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129559.html

相關文章

  • ES分布式架構及底層原理

    摘要:分布式架構原理設計的理念就是分布式搜索引擎,底層實現還是基于的,核心思想是在多態機器上啟動多個進程實例,組成一個集群。 es分布式架構原理 elasticsearch設計的理念就是分布式搜索引擎,底層實現還是基于Lucene的,核心思想是在多態機器上啟動多個es進程實例,組成一個es集群。一下是es的幾個概念: 接近實時es是一個接近實時的搜索平臺,這就意味著,從索引一個文檔直到文檔...

    Ocean 評論0 收藏0
  • 馬蜂窩大交通業務監控報警系統架構設計與實現

    摘要:為了讓大交通下的各業務線都能夠通過報警盡早發現問題解決問題,進而提升業務系統的服務質量,我們決定構建統一的監控報警系統。本文主要介紹馬蜂窩大交通業務監控報警系統的定位整體架構設計,以及我們在落地實踐過程中的一些踩坑經驗。 部門的業務線越來越多,任何一個線上運行的應用,都可能因為各種各樣的原因出現問題:比如業務層面,訂單量比上周減少了,流量突然下降了;技術層面的問題,系統出現 ERROR...

    smartlion 評論0 收藏0
  • 一條數據的漫游奇遇記

    摘要:基本邏輯一條數據在結構中的旅程,從寫入開始,然后進入,這是整個生命周期的第一處落腳點。每一層數據按排序,層與層之間的會交疊。上面是宏觀邏輯結構,如果具體來論讀寫操作和如何進行,就需要探討每一層的數據組織方式每個變種的實現各不相同。 阿里妹導讀:數據庫存儲引擎是一個有歷史的技術,經過數十年的發展,已經出現很多優秀成熟的產品。阿里巴巴 X-Engine 團隊撰寫的論文 X-Engine:...

    Godtoy 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<