99re热视频这里只精品,久久久天堂国产精品女人,国产av一区二区三区,久久久精品成人免费看片,99久久精品免费看国产一区二区三区

SolrCluod自動縮放策略和首選項

2018-01-12 11:24 更新
自動縮放策略和首選項是一組規(guī)則和排序首選項,幫助Solr選擇群集管理操作的目標(biāo),以便集群上的總體負(fù)載保持平衡。

SolrCloud群集首選項規(guī)范

首選項是向Solr提示如何根據(jù)節(jié)點的使用情況對節(jié)點進(jìn)行排序。默認(rèn)的群集首選項是按節(jié)點所承載的 Solr 核心(或副本)的總數(shù)進(jìn)行排序。因此,默認(rèn)情況下,在選擇要添加副本的節(jié)點時,Solr可以應(yīng)用這個首選項并選擇核心數(shù)量最少的節(jié)點。

可以添加多個首選項來斷開連接。例如,如果兩個節(jié)點上的內(nèi)核數(shù)量相同,我們可以選擇使用空閑磁盤空間來斷開連接,因此可以選擇空閑磁盤空間較高的節(jié)點作為集群操作的目標(biāo)。

每個首選項的形式如下:

{"<sort_order>":"<sort_param>", "precision":"<precision_val>"}
  • sort_order

    該值可以是maximize或者minimize。minimize將最小值的節(jié)點排序為最小負(fù)載。例如,{"minimize":"cores"}將核心數(shù)量最少的節(jié)點排序為負(fù)載最少的節(jié)點。排序順序,例如{"maximize":"freedisk"}將具有最大可用磁盤空間的節(jié)點排序為負(fù)載最少的節(jié)點。

    系統(tǒng)的目標(biāo)是使每個節(jié)點的負(fù)載最小。所以,在一個MOVEREPLICA操作的情況下,它通常以最負(fù)載的節(jié)點為目標(biāo),并將其卸載。在一種更加負(fù)載較少的加載,minimize類似于降序排序,maximize類似于按升序排序。

    這是一個必需的參數(shù)。

  • sort_param

    必須指定以下唯一支持的參數(shù)之一:

    1. cores:節(jié)點上的Solr核心總數(shù)。

    2. freedisk:Solr數(shù)據(jù)主目錄的可用磁盤空間量。這總是以千兆字節(jié)為單位。

    3. sysLoadAvg:由Metrics API在solr.jvm/os.systemLoadAverage密鑰下報告的節(jié)點上的系統(tǒng)負(fù)載平均值。這通常是介于0和1之間的double值,值越高,節(jié)點的加載越多。

    4. heapUsage:由Metrics API在solr.jvm/memory.heap.usage密鑰下報告的節(jié)點的堆使用情況。這通常是介于0和1之間的double值,值越高,節(jié)點的加載越多。

  • precision

    precision告訴系統(tǒng)兩個值之間的最小(絕對)差值,將它們視為不同的值。

    例如,10的精度freedisk意味著兩個節(jié)點的空閑磁盤空間相互在10GB以內(nèi),為了排序的目的應(yīng)該被視為相等。這有助于創(chuàng)建關(guān)系,沒有它指定多個首選項是沒有用的。這是一個可選參數(shù),其值必須是正整數(shù)。最大值precision必須小于最大值sort_value,如果有的話。

有關(guān)如何管理群集首選項的詳細(xì)信息,請參閱set-cluster-preferences API部分。

群集首選項的示例

默認(rèn)首選項

以下顯示了默認(rèn)群集首選項。當(dāng)沒有使用Autoscaling API設(shè)置明確的群集首選項時,這由Solr 自動應(yīng)用。

[
  {"minimize":"cores"}
]

最小化核心; 最大化可用磁盤

在這個例子中,我們希望最小化Solr內(nèi)核的數(shù)量,并且在一個連接的情況下,最大化每個節(jié)點上的可用磁盤空間量。

[
  {"minimize" : "cores"},
  {"maximize" : "freedisk"}
]

將精度添加到可用磁盤; 最小化系統(tǒng)負(fù)載

在這個例子中,我們給freedisk參數(shù)添加了一個精度,這樣相互之間的可用磁盤空間在10GB以內(nèi)的節(jié)點被認(rèn)為是相等的。在這種情況下,通過最小化sysLoadAvg來打破聯(lián)系。

[
  {"minimize" : "cores"},
  {"maximize" : "freedisk", "precision" : 10},
  {"minimize" : "sysLoadAvg"}
]

策略規(guī)范

策略是每個節(jié)點都要滿足的硬性規(guī)則。如果一個節(jié)點不滿足規(guī)則,那么它被稱為違規(guī)。Solr確保在調(diào)用任何集群管理操作時,將違規(guī)數(shù)量降至最低。

策略屬性

策略可以具有以下屬性:

  • cores

    這是一個適用于整個群集的特殊屬性。它只能與node屬性一起使用,而不能與其他屬性一起使用。該屬性是可選的。

  • collection

    策略規(guī)則應(yīng)該應(yīng)用到的集合的名稱。如果省略,則該規(guī)則適用于所有集合。該屬性是可選的。

  • shard

    策略規(guī)則應(yīng)該應(yīng)用到的分片的名稱。如果省略,則該規(guī)則適用于集合中的所有分片。它支持一個特殊的值#EACH,這意味著該規(guī)則適用于集合中的每個分片。

  • replica

    為滿足規(guī)則而必須存在的副本數(shù)量。這必須是一個正整數(shù)。這是一個必需的屬性。

  • strict

    一個可選的布爾值。默認(rèn)是true。如果 true,則必須滿足該規(guī)則。如果 false,Solr盡力滿足規(guī)則,但是如果沒有節(jié)點可以滿足規(guī)則,那么可以選擇任何節(jié)點。

除了以上屬性之外,還可以指定下列屬性中的一個屬性:

  • node

    規(guī)則應(yīng)該適用的節(jié)點的名稱。默認(rèn)值是#ANY這意味著群集中的任何節(jié)點都可以滿足規(guī)則。

  • port

    規(guī)則應(yīng)該適用的節(jié)點的端口。

  • freedisk

    以千兆字節(jié)為單位的可用磁盤空間。這必須是一個正的64位整數(shù)值。

  • host

    節(jié)點的主機(jī)名。

  • sysLoadAvg

    由Metrics API在solr.jvm/os.systemLoadAverage密鑰下報告的節(jié)點的系統(tǒng)負(fù)載平均值這是0到1之間的浮點值。

  • heapUsage

    由Metrics API在solr.jvm/memory.heap.usage密鑰下報告的節(jié)點的堆使用情況這是0到1之間的浮點值。

  • nodeRole

    節(jié)點的作用。目前唯一支持的值是overseer

  • ip_1 , ip_2, ip_3, ip_4

    對IP地址最重要的最重要的部分。例如,對于一個IP地址192.168.1.2,ip_1 = 2,ip_2 = 1,ip_3 = 168,ip_4 = 192

  • sysprop.<system_property_name>

    啟動時在節(jié)點上設(shè)置的任何系統(tǒng)屬性。

策略運算符

策略中的每個屬性都可以指定下列運算符之一以及該值。

  • <: 少于
  • >: 大于
  • !:不等于
  • None意思是平等的

策略規(guī)則的例子

限制副本放置

不要在同一個節(jié)點上放置同一個分片的多個副本:

{"replica": "<2", "shard": "#EACH", "node": "#ANY"}

限制每個節(jié)點的內(nèi)核

不要在任何節(jié)點放置10個以上的內(nèi)核。此規(guī)則只能添加到群集策略中,因為它提到了僅適用于群集范圍的cores屬性。

{"cores": "<10", "node": "#ANY"}

基于端口的本地副本

在端口上運行的節(jié)點上正好放置每個xyz集合分片的一個副本8983

{"replica": 1, "shard": "#EACH", "collection": "xyz", "port": "8983"}

基于系統(tǒng)屬性放置副本

將所有副本放在具有availability_zone=us-east-1a系統(tǒng)屬性的節(jié)點上。請注意,我們必須在負(fù)面意義上編寫此規(guī)則,即0個副本必須位于不具有availability_zone=us-east-1a系統(tǒng)屬性的節(jié)點上:

{"replica": 0, "sysprop.availability_zone": "!us-east-1a"}

基于節(jié)點角色放置副本

不要在具有overseer角色的節(jié)點上放置任何副本。請注意,該角色是由addRole集合API 添加的。它不是自動成為當(dāng)前監(jiān)督者的節(jié)點。

{"replica": 0, "nodeRole": "overseer"}

基于可用磁盤的地方副本

將所有復(fù)制副本放在空閑大于500GB的節(jié)點中。這里又一次,我們必須在負(fù)面意義上寫下規(guī)則。

{"replica": 0, "freedisk": "<500"}

嘗試基于可用磁盤放置副本

盡可能將所有副本放在空閑大于500GB的節(jié)點中。在這里,我們使用嚴(yán)格的關(guān)鍵字來表明這個規(guī)則是盡最大努力的。

{"replica": 0, "freedisk": "<500", "strict" : false}

定義特定于集合的策略

默認(rèn)情況下,群集策略(如果存在)將自動用于群集中的所有集合。但是,我們可以通過指定策略名稱和policy參數(shù)來創(chuàng)建可在創(chuàng)建時附加到集合的命名策略。

使用特定于集合的策略時,該策略中的規(guī)則將附加到群集策略中的規(guī)則中,并使用這兩者的組合。因此,建議不要將規(guī)則添加到與群集策略中的集合特定的策略中。這樣做會使群集中的所有節(jié)點都不符合所有標(biāo)準(zhǔn),從而使策略失效。

可以使用特定于集合的策略來覆蓋群集策略中指定的條件。例如,如果某個子句{replica:'<3', node:'#ANY'}出現(xiàn)在群集策略中,并且特定于集合的策略中有一個子句{replica:'<4', node:'#ANY'},則群集策略將被忽略,以支持集合策略。

另外,如果在創(chuàng)建集合時指定了 maxShardsPerNode,則必須滿足 maxShardsPerNode 和策略規(guī)則。

某些屬性,如cores,只能在集群策略中使用。有關(guān)詳細(xì)信息,請參閱上面的策略屬性部分。

該策略由這些Collections API命令使用:

  • CREATE
  • CREATESHARD
  • ADDREPLICA
  • RESTORE
  • SPLITSHARD

將來,Autoscaling框架將使用策略和首選項來自動更改群集,以響應(yīng)諸如正在添加或丟失的節(jié)點之類的事件。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號