帶着問題擼源碼系列-zookeeper-客戶端發讀請求給follower,是轉發給leader讀還是讀自己?

問題

帶着問題擼源碼系列-zookeeper-客戶端發讀請求給follower,是轉發給leader讀還是讀自己?

猜測

讀自己就行了吧。不過可能要考慮當前有沒有在寫之類的。

讀源碼

參考寫請求的分析
還把斷點打在消費queue消息這兒
設置條件斷點,如果是ping(request.type==11)請求咱就不斷點了。
在這裏插入圖片描述
發送一個請求 ls /

request.type=12, getChildren,沒有命中這裏的命令。說明是別的地方處理的
在這裏插入圖片描述
怎麼找“其他地方”呢?我們現在看肯定跟這個queuedRequest有關係,所以我們全文搜一下queuedRequest,發現有ReadOnlyRequestProcessor。

找到這裏其實卡住了,因爲不知道server是從哪接收客戶端收入的,思考了大概一個小時沒想到辦法找到入口,只好上網找資料看了。

這個問題的解答在:不同的RequestProcessor之間的順序和協調是怎樣的

於是我們可以發現這麼一個關係:

回答問題

在這裏插入圖片描述

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