W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
首選項是向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>"}
該值可以是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ù)。
必須指定以下唯一支持的參數(shù)之一:
cores
:節(jié)點上的Solr核心總數(shù)。
freedisk
:Solr數(shù)據(jù)主目錄的可用磁盤空間量。這總是以千兆字節(jié)為單位。
sysLoadAvg
:由Metrics API在solr.jvm/os.systemLoadAverage
密鑰下報告的節(jié)點上的系統(tǒng)負(fù)載平均值。這通常是介于0和1之間的double值,值越高,節(jié)點的加載越多。
heapUsage
:由Metrics API在solr.jvm/memory.heap.usage
密鑰下報告的節(jié)點的堆使用情況。這通常是介于0和1之間的double值,值越高,節(jié)點的加載越多。
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)群集首選項。當(dāng)沒有使用Autoscaling API設(shè)置明確的群集首選項時,這由Solr 自動應(yīng)用。
[
{"minimize":"cores"}
]
在這個例子中,我們希望最小化Solr內(nèi)核的數(shù)量,并且在一個連接的情況下,最大化每個節(jié)點上的可用磁盤空間量。
[
{"minimize" : "cores"},
{"maximize" : "freedisk"}
]
在這個例子中,我們給freedisk參數(shù)添加了一個精度,這樣相互之間的可用磁盤空間在10GB以內(nèi)的節(jié)點被認(rèn)為是相等的。在這種情況下,通過最小化sysLoadAvg來打破聯(lián)系。
[
{"minimize" : "cores"},
{"maximize" : "freedisk", "precision" : 10},
{"minimize" : "sysLoadAvg"}
]
策略是每個節(jié)點都要滿足的硬性規(guī)則。如果一個節(jié)點不滿足規(guī)則,那么它被稱為違規(guī)。Solr確保在調(diào)用任何集群管理操作時,將違規(guī)數(shù)量降至最低。
策略可以具有以下屬性:
這是一個適用于整個群集的特殊屬性。它只能與node
屬性一起使用,而不能與其他屬性一起使用。該屬性是可選的。
策略規(guī)則應(yīng)該應(yīng)用到的集合的名稱。如果省略,則該規(guī)則適用于所有集合。該屬性是可選的。
策略規(guī)則應(yīng)該應(yīng)用到的分片的名稱。如果省略,則該規(guī)則適用于集合中的所有分片。它支持一個特殊的值#EACH
,這意味著該規(guī)則適用于集合中的每個分片。
為滿足規(guī)則而必須存在的副本數(shù)量。這必須是一個正整數(shù)。這是一個必需的屬性。
一個可選的布爾值。默認(rèn)是true
。如果 true,則必須滿足該規(guī)則。如果 false,Solr盡力滿足規(guī)則,但是如果沒有節(jié)點可以滿足規(guī)則,那么可以選擇任何節(jié)點。
除了以上屬性之外,還可以指定下列屬性中的一個屬性:
規(guī)則應(yīng)該適用的節(jié)點的名稱。默認(rèn)值是#ANY
這意味著群集中的任何節(jié)點都可以滿足規(guī)則。
規(guī)則應(yīng)該適用的節(jié)點的端口。
以千兆字節(jié)為單位的可用磁盤空間。這必須是一個正的64位整數(shù)值。
節(jié)點的主機(jī)名。
由Metrics API在solr.jvm/os.systemLoadAverage
密鑰下報告的節(jié)點的系統(tǒng)負(fù)載平均值這是0到1之間的浮點值。
由Metrics API在solr.jvm/memory.heap.usage
密鑰下報告的節(jié)點的堆使用情況這是0到1之間的浮點值。
節(jié)點的作用。目前唯一支持的值是overseer
。
對IP地址最重要的最重要的部分。例如,對于一個IP地址192.168.1.2
,ip_1 = 2
,ip_2 = 1
,ip_3 = 168
,ip_4 = 192
。
啟動時在節(jié)點上設(shè)置的任何系統(tǒng)屬性。
策略中的每個屬性都可以指定下列運算符之一以及該值。
不要在同一個節(jié)點上放置同一個分片的多個副本:
{"replica": "<2", "shard": "#EACH", "node": "#ANY"}
不要在任何節(jié)點放置10個以上的內(nèi)核。此規(guī)則只能添加到群集策略中,因為它提到了僅適用于群集范圍的cores屬性。
{"cores": "<10", "node": "#ANY"}
在端口上運行的節(jié)點上正好放置每個xyz集合分片的一個副本8983
{"replica": 1, "shard": "#EACH", "collection": "xyz", "port": "8983"}
將所有副本放在具有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"}
不要在具有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命令使用:
將來,Autoscaling框架將使用策略和首選項來自動更改群集,以響應(yīng)諸如正在添加或丟失的節(jié)點之類的事件。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: