訊息型別
傳送方-->接收方
說明diff,13
leader-->learner
通知learner伺服器,leader即將與其進行diff方式的資料同步
trunc,14
leader-->learner
觸發learner進行記憶體資料庫的回滾操作
snap,15
leader-->learner
leader即將與其進行」全量「資料同步
uptodate,12
leader-->learner
告訴learner伺服器已經完成了資料同步,可以開始對外提供服務了
訊息型別
傳送方-->接收方
說明obsercerinfo,16
observer-->leader
observer在啟動時發給leader註冊自己,訊息中包含sid和自己已處理的最新zxid
followerinfo,11
follower-->leader
followerr在啟動時發給leader註冊自己,訊息中包含sid和自己已處理的最新zxid
leaderinfo,17
leader-->learner
learner連上leader後,leader傳送leaderinfo,包含最新的epoch值
ackepoch,18
learner-->leader
learner在收到leaderinfo後,將自己最新的zxid和epoch發給leader
newleader,19
leader-->learner
資料同步時,leader向learner傳送乙個階段性的標識資訊
訊息型別
傳送方-->接收方
說明request,1
learner-->leader
follower將事務請求已request協議形式**給leader進行處理
proposal,2
leader-->follower
leader將事務請求以proposal訊息形式發給所有follower進行事務日誌的記錄
ack,3
follower-->leader
follower記錄完事務日誌後,將ack反饋給leader
commit,4
leader-->follower
leader告知所有follower進行事務提交
inform,8
leader-->observer
在commit階段,leader值需要傳送乙個commit訊息,follower就可根據已有的事務日誌完成提交了;但是對於observer則需要傳送完整的訊息
sync,7
leader-->learner
用於通知learner已經完成了sync操作
訊息型別
傳送方-->接收方
說明ping,5
leader-->learner
leader定期向learner傳送ping請求,learner將自己連線的客戶端列表傳送給leader,由leader逐個對這些客戶端進行啟用
revalidate,6
learner-->leader
客戶端重連過程中,新的伺服器需要向leader傳送改訊息確認會話是否已超時
程序間的通訊 訊息佇列
訊息佇列 佇列是先進先出,把寫入的訊息按佇列的方式排列,然後讀取訊息時按佇列性質讀取,或按指定的型別號讀取 實現訊息佇列的步驟 1.獲取key值,2.建立訊息佇列,取得訊息佇列的id 3.向訊息佇列裡寫入訊息 4.讀取訊息佇列的訊息 5.刪除訊息佇列 讀端 include include inclu...
程序間訊息佇列通訊
要保證server能夠接收client的訊息,就必須保證server的生成的msg的識別符號是一樣的,也就是兩個用的key是必須一樣的。msglucy.c include include include include include include include include include ...
程序間通訊(訊息佇列)
在嵌入式linux應用開發中,linux程序通訊的方式有6種,分別是管道 pipe 及有名管道 named pipe 訊號 signal 訊息佇列 msg 共享記憶體 shm 訊號量 和套接字 socket 在這我就簡單的描述一下程序通訊中的資訊佇列 msg 首先,訊息佇列的實現有重要的幾步 1 建...