pika線程模型

2018-09-27 09:47 更新

pika使用的是多線程模型,使用多個工作線程來進行讀寫操作,由底層nemo引擎來保證線程安全,線程分為11種:

  • PikaServer:主線程
  • DispatchThread:監(jiān)聽端口1個端口,接收用戶連接請求
  • ClientWorker:存在多個(用戶配置),每個線程里有若干個用戶客戶端的連接,負責接收處理用戶命令并返回結(jié)果,每個線程執(zhí)行寫命令后,追加到binlog中
  • Trysync:嘗試與master建立首次連接,并在以后出現(xiàn)故障后發(fā)起重連
  • ReplicaSender:存在多個(動態(tài)創(chuàng)建銷毀,本master節(jié)點掛多少個slave節(jié)點就有多少個),每個線程根據(jù)slave節(jié)點發(fā)來的同步偏移量,從binlog指定的偏移開始實時同步命令給slave節(jié)點
  • ReplicaReceiver:存在1個(動態(tài)創(chuàng)建銷毀,一個slave節(jié)點同時只能有一個master),將用戶指定或當前的偏移量發(fā)送給master節(jié)點并開始接收執(zhí)行master實時發(fā)來的同步命令,在本地使用和master完全一致的偏移量來追加binlog
  • SlavePing:slave用來向master發(fā)送心跳進行存活檢測
  • bgsave:后臺dump線程
  • HeartBeat:master用來接收所有slave發(fā)送來的心跳并回復(fù)進行存活檢測
  • scan:后臺掃描keyspace線程
  • purge:后臺刪除binlog線程

pika線程模型

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號