ES 筆記三十二:文件分散式儲存

CrazyZard發表於2019-12-18
  • 文件會儲存在具體的某個主分片和副本分片上:例如文件1,會儲存在P0 R0分片上
  • 文件到分片的對映演算法
    • 確保文件能均勻分佈在所用分片上,充分利用硬體資源,避免部分機器空閒,部門機器繁忙
    • 潛在的演算法
      • 隨機/Round Robin.當查詢文件1,分片數很多,需要多次查詢才能查檔文件1
      • 維護文件到分片的對映關係,當文件資料量大的時候,維護成本高
      • 實時計算,通過文件1,自動算出,需要去哪個分片上獲取文件
  • shard = hash(_routing) % number_of_primary_shards
    • Hash 演算法確保文件均勻分散到分片中
    • 預設的_routing 值是文件id
    • 可以自行制定routing數值,例如用相同國家的商品,都分配到制定的shard
    • 設定Index Setting 後,Primary 數,不能隨意修改的根本原因
  • 順序: index -> hash -> route -> delete -> index -> success -> response

ES 筆記三十二:文件分散式儲存

  • 順序 :detele -> hash&route -> delete -> delete replica -> success -> deleted -> response

ES 筆記三十二:文件分散式儲存

  • 可以設定Index Settings ,控制資料的分片
  • Primary Shard 的值不能修改,修改需要重新Index。預設值是5,從版本7開始,預設值為1
  • 索引寫入資料後,Replica值可以修改。增加副本,可提高大併發下的讀取效能
  • 通過控制叢集的節點數,設定Primary Shard 數,實現水平擴充套件

快樂就是解決一個又一個的問題!

相關文章