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

gateway為什么它不會把業(yè)務請求發(fā)到局域網別人的bussinessworker上去呢?

david2015

我現在是用的是阿里云的云服務器,它給了我一個10.x.x.x的內網IP,我想使用的是一gateway多worker 分離部署(可能其它人也在阿里云使用workerman同一個局域網),那我如何才能使gateway把進來的業(yè)務需求分發(fā)到我的bussinessworker中去而不是別人的?都是同一個局域網,在gateway的那個機子上沒有地方配置寫的是我bussinessworker的ip。為什么它不會發(fā)到局域網別人的bussinessworker上去呢?

3666 13 0
13個回答

walkor 打賞

Gateway啟動時會將Gateway的內部通訊端口寫到 Config/Store.php配置的存儲中,
BusinessWorker服務器也有一個Config/Store.php配置,并且與Gateway的相同,
BusinessWorker啟動后會讀取Config/Store.php配置的存儲,得到Gateway的內部通訊地址
然后BusinessWorker主動連接到Gateway,Gateway與BusinessWorker之間的連接就建立起來了。

所以基于上面的原理,分布式部署時
1、要求Config/Store.php使用redis/memcache存儲,并且Gateway BusinessWorker服務器都可以訪問
2、Gateway BusinessWorker服務器的Config/Store.php配置要相同

同樣,基于上面原理,有多個GatwayWorker項目同時運行時,
要求多個GatwayWorker項目的Config/Store.php配置要求不同,否則數據會串

  • 暫無評論
david2015

Gateway啟動時會將Gateway的內部通訊端口寫到 Config/Store.php配置的存儲中,

舉個例:如果gateway服務器所在ip為10.0.1.1,worker所在服務器所在ip為10.0.1.2/3,

Gateway啟動時會將Gateway的內部通訊端口寫到 10.0.1.1上的Config/Store.php配置的存儲里還是10.0.1.1/2/3的Config/Store.php中?

  • 暫無評論
walkor 打賞

10.0.1.1上的Config/Store.php
10.0.1.1/2/3的Config/Store.php
兩個配置的是同一個redis/memcache存儲

  • 暫無評論
david2015

BusinessWorker啟動后會讀取Config/Store.php配置的存儲,得到Gateway的內部通訊地址

這個是不是這樣,10.0.1.2上的bussinessworker啟動后讀取store.php里的memcached地址是10.0.1.4,然后遍歷整個局域網,發(fā)現其上的store.php里的memcached為10.0.1.4就認為是同一個組的?

如果有多個gateway,bussinessworker是怎樣操作的?

  • 暫無評論
walkor 打賞

沒有局域網遍歷,直接連存儲中保存的通訊地址

  • 暫無評論
david2015

store.php 中只有下面兩個配置:

public static $driver = self::DRIVER_MC;

// 如果是memcache存儲,則在這里設置memcache的ip端口,注意確保你安裝了memcache擴展
public static $gateway = array(
    '127.0.0.1:11211',
);
  • 暫無評論
walkor 打賞

你的版本有點老了

  • 暫無評論
david2015

包含最新版workerman的Chat 聊天室的源碼在哪下載?

  • 暫無評論
david2015

class Store
{
// 使用文件存儲,注意使用文件存儲無法支持workerman分布式部署
const DRIVER_FILE = 1;
// 使用memcache存儲,支持workerman分布式部署
const DRIVER_MC = 2;
// 使用redis存儲(推薦),支持workerman分布式部署
const DRIVER_REDIS = 3;

 // DRIVER_FILE 或者 DRIVER_MC 或者 DRIVER_REDIS(推薦)
public static $driver = self::DRIVER_FILE;

//$driver為DRIVER_MC/DRIVER_REDIS時需要配置memcached/redis服務端ip和端口
public static $gateway = array(
    '127.0.0.1:6379',
);

// $driver為DRIVER_FILE時要配置此項,實際配置在最下面一行
public static $storePath = '';

}

// 默認系統(tǒng)臨時目錄下
Store::$storePath = sys_get_temp_dir().'/workerman-chat/';


如果沒有局域網遍歷,那bussinessworker如何知道向哪臺機子去取存儲中保存的通訊地址呢?

  • 暫無評論
walkor 打賞

向這個機子取
public static $gateway = array(
'127.0.0.1:6379',
);

  • 暫無評論
david2015

//$driver為DRIVER_MC/DRIVER_REDIS時需要配置memcached/redis服務端ip和端口
public static $gateway = array(
'127.0.0.1:6379',
);


這個不是寫的是memcached/redis服務端ip和端口嗎(上面注釋是這樣寫的)

  • 暫無評論
walkor 打賞

businessworekr 從memcached/redis服務端ip和端口的存儲里讀取數據 取得 gateway的通訊地址
然后去連這個地址,就連到gateway了

自己跟蹤打印下存儲里面存儲的值吧

  • 暫無評論
david2015

好的,謝謝

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