JedisSentinelPool源碼總結

  1. 該類在初始化的時候,會將監視redis主從的sentinels放入一個list。

  2. 遍歷該list,向sentinel發送一個命令:獲取指定masterName的地址,而且只要有一個sentinel響應就終止循環。

  3. 根據上面獲取的masters地址,與masters建立連接並初始化GenericObjectPool,由它來獲取Jedis實例。

  4. 與此同時,客戶端與sentinel之間,創建一個消息訂閱,如果sentinel所監控的master有改變,則立刻觸發initPool方法,重置master的地址。

  5. 由此可以解釋,爲什麼master的客戶端連接數比sentinel高,sentinel只是監視作用,告知你master在哪裏,實際上還是得直接與master創建連接。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章