gateway worker 分離部署,一共3臺服務(wù)器,一臺gateway服務(wù)【register和gateway在一臺服務(wù)器】,2臺BusinessWorker,但是連接的時候 請求都往一臺服務(wù)器的BusinessWorker 發(fā)送了,gateway服務(wù)如何分配連接到不同的BusinessWorker服務(wù)
用了自定義路由負(fù)載分布就還行,用gateway 默認(rèn)負(fù)載機制 連接就只往最先啟動的那臺服務(wù)器的BusinessWorker 發(fā)送,2臺服務(wù)器BusinessWorker啟動時間間隔 1s
// 使用輪詢負(fù)載均衡確保連接均勻分布
$gateway->router = function($worker_connections, $client_connection, $cmd, $buffer) {
if (empty($worker_connections)) {
return 0;
}
static $counter = 0;
$worker_ids = array_keys($worker_connections);
$index = $counter % count($worker_ids);
$counter++;
return $worker_connections[$worker_ids[$index]];
};
gateway和BusinessWorker都連接同一個register(開放外部連接),
這樣不同服務(wù)器的gateway和BusinessWorker,統(tǒng)一由register調(diào)度了