国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

GatewayWorker分布式問題

crh5354

請問GatewayWorker分布式是怎么實現(xiàn)的呢?例如文檔中的例子,三臺機子,看到設(shè)置中沒有配置BusinessWorker什么ip地址和端口,Gateway也沒有設(shè)置具體BusinessWorker所在的機子ip,BusinessWorker通過什么連上Gateway,代碼上哪里?

4151 11 0
11個回答

walkor 打賞

三臺機器都有配置Config/Store.php,里面配置的redis/memcache存儲
當gateway進程啟動時,每個gateway進程會開啟一個內(nèi)部通訊地址(ip:端口),這個內(nèi)部通訊地址是讓businessWorker連的,gateway進程會把這個內(nèi)部通訊地址寫到Config/Store.php配置的redis/memcache存儲里面

businessWorker啟動的時候會讀取Config/Store.php配置,然后從redis/memcache能得到每個gateway進程的內(nèi)部通訊端口,然后嘗試連接,這樣每個gateway和每個businessWorker就連起來了,實現(xiàn)了分布式

所以分布式的重點在于每臺服務器上的Config/Store.php配置的redis/memcache是一致的

  • jelty 2015-11-11

    @1 如果gateway這種模型把gate去掉 ,直接client->多個worker連接,這樣有什么弊端,看起來會簡單些 少了中間層

  • walkor 2015-11-11

    worker1的client 與worker2的client無法直接通訊

smith

workerman 2.1.6版本

部署三臺服務器(192.168.1.1-3)提供高可用服務。
memcache服務器(ip 192.168.1.1 端口11211)做全局數(shù)據(jù)共享。

三臺服務器Gateway實例的lanIp與當前服務器內(nèi)網(wǎng)ip一致

三臺服務器Applications/Demo/Config/Store.php
public static $driver = self::DRIVER_MC;
public static $gateway = array(
'192.168.1.1:11211',
);

三臺機器都能正常啟動workerman,但server.log總是有這個錯誤
Worker:CLIENT: CLOSE INNER_CONNECTION

原因是什么?

  • 暫無評論
walkor 打賞

log 出現(xiàn)這個日志后看下status
貼下

  • 暫無評論
smith

剛截的圖,才啟動第二臺。 因為有報錯,把三臺關(guān)閉了兩臺。

  • 暫無評論
walkor 打賞

我要看報錯那臺的status,
只貼上半部分就行

你先檢查下機器上是不是都裝了memcached擴展,并且擴展版本都是一致的
memcache有memcache和memcached兩個擴展,所有服務器裝同一種

  • 暫無評論
smith

恩 有memcache和memcached兩個擴展

這個截屏就是出問題的那臺status

  • 暫無評論
smith

我是否把memcached這個擴展去掉就ok?

  • 暫無評論
walkor 打賞

status我要看統(tǒng)計結(jié)果的上半部分,并且是出錯后的status

  • 暫無評論
smith

walkor幫忙看看

  • 暫無評論
walkor 打賞

截圖里面沒看出來問題

  • 暫無評論
smith

Hello admin
---------------------------------------GLOBAL STATUS--------------------------------------------
WorkerMan version:2.1.6 PHP version:5.5.7
start time:2015-11-04 16:45:27 run 0 days 1 hours
load average: 0.01, 0.02, 0
1 users 3 workers 35 processes
worker_name exit_status exit_count
BusinessWorker 0 0
Gateway 0 1
Monitor 0 0

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??