gateway worker 分離部署,一共3臺(tái)服務(wù)器,一臺(tái)gateway服務(wù)【register和gateway在一臺(tái)服務(wù)器】,2臺(tái)BusinessWorker,但是連接的時(shí)候 請(qǐng)求都往一臺(tái)服務(wù)器的BusinessWorker 發(fā)送了,gateway服務(wù)如何分配連接到不同的BusinessWorker服務(wù)
用了自定義路由負(fù)載分布就還行,用gateway 默認(rèn)負(fù)載機(jī)制 連接就只往最先啟動(dòng)的那臺(tái)服務(wù)器的BusinessWorker 發(fā)送,2臺(tái)服務(wù)器BusinessWorker啟動(dòng)時(shí)間間隔 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]];
};
http://m.wtbis.cn/doc/gateway-worker/gateway-worker-separation.html 多看看官方的手冊(cè)。我也剛接觸不久。
gateway和BusinessWorker都連接同一個(gè)register(開(kāi)放外部連接),
這樣不同服務(wù)器的gateway和BusinessWorker,統(tǒng)一由register調(diào)度了