下面兩個(gè)圖是我分別重啟后截圖,默認(rèn)都是從client_id=1開始遞增。
這樣是不是一旦項(xiàng)目上線后,就不能關(guān)閉重啟了,只能通過平滑重啟,不然clietn_id與數(shù)據(jù)庫(kù)的uid對(duì)不上了?或者有沒有其他解決辦法?
查看源碼發(fā)現(xiàn),client_id是通過ip+端口+connection_id的16進(jìn)制,connection_id是當(dāng)前連接數(shù),所以workerman重啟后,connection_id就從1重新開始計(jì)算了。
/**
* 生成connection id
* @return int
*/
protected function generateConnectionId()
{
$max_unsigned_int = 4294967295;
if (self::$_connectionIdRecorder >= $max_unsigned_int) {
self::$_connectionIdRecorder = 0;
}
while(++self::$_connectionIdRecorder <= $max_unsigned_int) {
if(!isset($this->_clientConnections[self::$_connectionIdRecorder])) {
break;
}
}
return self::$_connectionIdRecorder;
}