REBALANCELEADERS:重新平衡leader

2018-01-08 11:00 更新

REBALANCELEADERS

根據(jù)活動(dòng)節(jié)點(diǎn)上的preferredLeader屬性重新分配集合中的leader。

/admin/collections?action=REBALANCELEADERS&collection=collectionName

根據(jù)活動(dòng)節(jié)點(diǎn)上的preferredLeader屬性將leader分配到一個(gè)集合中。在通過(guò)BALANCESHARDUNIQUE或ADDREPLICAPROP命令分配preferredLeader屬性之后,應(yīng)執(zhí)行此命令。

并不要求集合中的所有碎片都有preferredLeader屬性。再平衡將只嘗試重新分配領(lǐng)導(dǎo)那些將preferredLeader屬性設(shè)置為true 的副本,而不是當(dāng)前的碎片leader和當(dāng)前的活動(dòng)狀態(tài)。

REBALANCELEADERS參數(shù)

  • collection

    要重新平衡的集合的名稱preferredLeaders。該參數(shù)是必需的。

  • maxAtOnce

    一次排隊(duì)的最大重新分配數(shù)量。值<= 0使用默認(rèn)值Integer.MAX_VALUE。

    當(dāng)達(dá)到這個(gè)數(shù)字時(shí),該過(guò)程等待一個(gè)或多個(gè)領(lǐng)導(dǎo)者被成功分配,然后再增加更多的隊(duì)列。

  • maxWaitSeconds

    默認(rèn)為60。這是等待領(lǐng)導(dǎo)人重新分配時(shí)的超時(shí)值。如果maxAtOnce小于將要發(fā)生的重新分配的數(shù)量,則這是任何一次等待至少一次重新分配的最大間隔。

    例如,如果10和再分配是發(fā)生和maxAtOnce1maxWaitSeconds60,在該命令可以等待的時(shí)間的上限是10分鐘。

REBALANCELEADERS響應(yīng)

響應(yīng)將包括請(qǐng)求的狀態(tài)。如果狀態(tài)不是“0”,則會(huì)顯示一條錯(cuò)誤消息,說(shuō)明請(qǐng)求失敗的原因。

使用REBALANCELEADERS的例子

在這個(gè)例子中輸入:

這些命令中的任何一個(gè)都會(huì)導(dǎo)致所有具有preferredLeader屬性設(shè)置的活動(dòng)副本,并且不是已經(jīng)成為首選的leader。

http://localhost:8983/solr/admin/collections?action=REBALANCELEADERS&collection=collection1
http://localhost:8983/solr/admin/collections?action=REBALANCELEADERS&collection=collection1&maxAtOnce=5&maxWaitSeconds=30

得到輸出:

在這個(gè)例子中,“alreadyLeaders”部分中的兩個(gè)副本已經(jīng)將leader分配給與該preferredLeader屬性相同的節(jié)點(diǎn),因此沒(méi)有采取任何操作。

“inactivePreferreds”部分中的副本具有preferredLeader屬性集,但節(jié)點(diǎn)已關(guān)閉且不采取任何操作?!皊uccesses”部分的三個(gè)節(jié)點(diǎn)是leader,因?yàn)樗麄儞碛衟referredLeader屬性集,但不是leader,他們是活躍的。

<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">123</int>
  </lst>
  <lst name="alreadyLeaders">
    <lst name="core_node1">
      <str name="status">success</str>
      <str name="msg">Already leader</str>
      <str name="nodeName">192.168.1.167:7400_solr</str>
    </lst>
    <lst name="core_node17">
      <str name="status">success</str>
      <str name="msg">Already leader</str>
      <str name="nodeName">192.168.1.167:7600_solr</str>
    </lst>
  </lst>
  <lst name="inactivePreferreds">
    <lst name="core_node4">
      <str name="status">skipped</str>
      <str name="msg">Node is a referredLeader, but it's inactive. Skipping</str>
      <str name="nodeName">192.168.1.167:7500_solr</str>
    </lst>
  </lst>
  <lst name="successes">
    <lst name="_collection1_shard3_replica1">
      <str name="status">success</str>
      <str name="msg">
        Assigned 'Collection: 'collection1', Shard: 'shard3', Core: 'collection1_shard3_replica1', BaseUrl:
        'http://192.168.1.167:8983/solr'' to be leader
      </str>
    </lst>
    <lst name="_collection1_shard5_replica3">
      <str name="status">success</str>
      <str name="msg">
        Assigned 'Collection: 'collection1', Shard: 'shard5', Core: 'collection1_shard5_replica3', BaseUrl:
        'http://192.168.1.167:7200/solr'' to be leader
      </str>
    </lst>
    <lst name="_collection1_shard4_replica2">
      <str name="status">success</str>
      <str name="msg">
        Assigned 'Collection: 'collection1', Shard: 'shard4', Core: 'collection1_shard4_replica2', BaseUrl:
        'http://192.168.1.167:7300/solr'' to be leader
      </str>
    </lst>
  </lst>
</response>

發(fā)出這個(gè)調(diào)用之后檢查clustertate應(yīng)該顯示每個(gè)擁有該preferredLeader屬性的活動(dòng)節(jié)點(diǎn),也應(yīng)該將“l(fā)eader”屬性設(shè)置為true。

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)