請(qǐng)問(wèn)各位大佬,Gateway::sendToUid老是報(bào)getAllGatewayAddressesFromRegister錯(cuò)誤是什么原因呢
register服務(wù)是用于gateway進(jìn)程和business進(jìn)程通信的,所以必不可少;
題示報(bào)錯(cuò)的話,確認(rèn)下 register address【$gateway->registerAddress 以及 $business->registerAddress】是不是設(shè)置錯(cuò)了?
protected static $businessWorker = null;
public static $registerAddress = '*****:1238';
$register = new Register('text://0.0.0.0:1238');這樣配置沒(méi)錯(cuò)吧
protected static $businessWorker = null;
public static $registerAddress = '*****:1238';
$register = new Register('text://0.0.0.0:1238');這樣配置沒(méi)錯(cuò)吧
嗯,沒(méi)錯(cuò),這是register服務(wù)自身的設(shè)定,讓你檢查的是start_gateway.php和start_businessworker.php里的配置地址,它們必須完全相同。
不清楚你具體還有啥上下文環(huán)境,不過(guò)這種問(wèn)題我感覺(jué)排并沒(méi)有什么技術(shù)性難點(diǎn),很簡(jiǎn)單,原理就那么回事,實(shí)在不行就把register的地址顯式打印出來(lái)或扔日志里,看register地址到底對(duì)不對(duì)? 各個(gè)業(yè)務(wù)worker連的register地址也都對(duì)不對(duì)?對(duì)的話然后嘗試telnet去連下看是不是OK的? 連不上的時(shí)候想想防火墻啥的等等吧......
@614:lanIp是Gateway所在服務(wù)器的內(nèi)網(wǎng)IP,默認(rèn)填寫127.0.0.1即可。多服務(wù)器分布式部署的時(shí)候需要填寫真實(shí)的內(nèi)網(wǎng)ip,不能填寫127.0.0.1。注意:lanIp只能填寫真實(shí)ip,不能填寫域名或者其它字符串,無(wú)論如何都不能寫0.0.0.0 .
@614:Gateway: Worker->name conflict. Key:127.0.0.1:YourAppBusinessWorker:0 還有一個(gè)問(wèn)題,一直重復(fù)發(fā)送這個(gè)是什么原因呢
@1393:proto user worker listen processes status
tcp root huanqiuwu none 1 [OK]
tcp root huanqiuwuAppGateway websocket://0.0.0.0:8282 1 [OK]
tcp root Register websocket://0.0.0.0:1238 1 [OK]