1
我在三節點Disque集羣上遇到複製問題,這似乎很奇怪,因爲用例相當典型,所以完全有可能我做錯了什麼。基本3節點Disque集羣上的複製問題
這是如何在本地重現:
# relevant disque info
disque_version:1.0-rc1
disque_git_sha1:0192ba7e
disque_git_dirty:0
disque_build_id:b02910aa5c47590a
開始3個端口9001,9002和9003 DISQUE節點,然後對端口9002和9003服務器的相遇與9001
127.0.0.1:9002> CLUSTER MEET 127.0.0.1 9001 #=> OK
127.0.0.1:9003> CLUSTER MEET 127.0.0.1 9001 #=> OK
如預期的那樣,HELLO
報告所有三個節點的相同數據。
127.0.0.1:9003> hello
1) (integer) 1
2) "e93cbbd17ad12369dd2066a55f9d4c51be9c93dd"
3) 1) "b61c63e8fd0c67544f895f5d045aa832ccb47e08"
2) "127.0.0.1"
3) "9001"
4) "1"
4) 1) "b32eb6501e272a06d4c20a1459260ceba658b5cd"
2) "127.0.0.1"
3) "9002"
4) "1"
5) 1) "e93cbbd17ad12369dd2066a55f9d4c51be9c93dd"
2) "127.0.0.1"
3) "9003"
4) "1"
一個進行排隊作業成功,但作業不顯示上的其他節點要麼QLEN
或QPEEK
。
127.0.0.1:9001> addjob myqueue body 1 #=> D-b61c63e8-IFA29ufvL37FRVjVVWisbO/x-05a1
127.0.0.1:9001> qlen myqueue #=> 1
127.0.0.1:9002> qlen myqueue #=> 0
127.0.0.1:9002> qpeek myqueue 1 #=> (empty list or set)
127.0.0.1:9003> qlen myqueue #=> 0
127.0.0.1:9003> qpeek myqueue 1 #=> (empty list or set)
當明確設置比節點的量越高複製值,DISQUE失敗並NOREPL
正如人們所期望的2的顯式的複製水平的成功,但工作仍然無處可在節點9002見過和9003.無論我添加作業的節點如何,都會發生相同的行爲。
我的理解是調用ADDJOB
時(除非明確使用ASYNC
)的複製發生同步,但它似乎沒有正常工作,該測試套件傳入master
分支,所以我在這裏打在牆上,將不得不挖掘源代碼,任何幫助將不勝感激!
剛剛嘗試過,殺死'9001'節點沒有將任務排入其他任何地方:( – pote
不過,也許我的問題是一個不同的問題然後(症狀是取得作業的進程長時間保持阻塞而沒有接收任何工作),如有必要,我會繼續調試和更新。 – pote