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

gateworkerman 流程問(wèn)題

oldtwo

截圖
這個(gè)圖 有些地方?jīng)]有看懂 就是 worker 進(jìn)程 是怎么從多個(gè)gateway里面選擇一個(gè) 轉(zhuǎn)發(fā)給客戶端的
gateway進(jìn)程 又是怎么從多個(gè)worker里面選擇一個(gè)來(lái)處理的 追源碼的時(shí)候沒(méi)有看見(jiàn)這里面的流程
可以用worker進(jìn)程 從多個(gè)gateway 進(jìn)程選擇選擇一個(gè)說(shuō)明一下。

1303 1 0
1個(gè)回答

phpcreeper

題外話
大大的源碼里注釋相當(dāng)人性化了,而且好多地方還都是中文注釋呢,那么明顯的實(shí)現(xiàn)說(shuō)看不見(jiàn)不合理呀,只能說(shuō)還是你源碼看的多少粗暴。

首先建議把官方手冊(cè)介紹的原理先熟讀一遍,然后咱們分享細(xì)節(jié)
http://www.wtbis.cn/doc/gateway-worker/principle.html

上面的工作做好了,且為了方便表述問(wèn)題,我們做如下上下文設(shè)定

  1. 我們選定研究對(duì)象: client-7客戶端, gateway-2進(jìn)程, worker-3進(jìn)程
  2. 我們?cè)O(shè)定研究worker進(jìn)程只返回?cái)?shù)據(jù)給client-7客戶端

先說(shuō)client和gateway通信

  1. client-7發(fā)起連接,此時(shí)所有的gateway進(jìn)程受內(nèi)核調(diào)度遴選出gateway-2進(jìn)程處理客戶端連接;
  2. gateway-2進(jìn)程會(huì)從worker進(jìn)程(向gateway-2進(jìn)程)發(fā)起的所有連接中隨機(jī)的選出一個(gè)連接,然后發(fā)給我們?cè)O(shè)定的隨機(jī)worker-3進(jìn)程; 注意: 一旦第一次隨機(jī)命中了,之后再收發(fā)數(shù)據(jù)的話,那還是往這個(gè)worker-3上發(fā),不過(guò)要想自主決定由哪個(gè)worker來(lái)處理也是可以的, 方案就是定制Worer::$router回調(diào)
  3. gateway-2進(jìn)程會(huì)將client-7的client_id轉(zhuǎn)發(fā)給worker-2進(jìn)程,重點(diǎn)來(lái)了: client_id中包含了內(nèi)部IP、端口以及客戶端連接ID等重要的憑證數(shù)據(jù),換句話這三個(gè)因子決定了client_id的唯一性;
  4. 還是提一下: 每個(gè)gateway進(jìn)程在啟動(dòng)以后,都會(huì)開(kāi)啟一個(gè)相應(yīng)的內(nèi)部監(jiān)聽(tīng)端口;

再來(lái)說(shuō)一下gateway和worker通信
當(dāng)worker進(jìn)程返回?cái)?shù)據(jù)給設(shè)定的客戶端時(shí)【其實(shí)是events代理幫干的】,會(huì)根據(jù)client_id反解出相應(yīng)的gateway進(jìn)程的內(nèi)部IP、端口, 這樣worker-3進(jìn)程自然就知道該連接哪個(gè)gateway進(jìn)程了,這里自然就是我們?cè)O(shè)定的gateway-2進(jìn)程。

  • liziyu 2022-05-12

    ??

  • oldtwo 2022-05-13

    1 client-7發(fā)起連接,此時(shí)所有的gateway進(jìn)程受內(nèi)核調(diào)度遴選出gateway-2進(jìn)程處理客戶端連接; 這個(gè)第一步 不是workerman 實(shí)現(xiàn)的嗎? 怎么變成內(nèi)核調(diào)度選出gateway-2

  • phpcreeper 2022-05-13

    workerman實(shí)現(xiàn)了多進(jìn)程模型以及網(wǎng)絡(luò)IO管理,但是到底由哪個(gè)進(jìn)程來(lái)處理哪個(gè)TCP連接,workerman沒(méi)有調(diào)度權(quán)【不要忘了一開(kāi)始的上下文設(shè)定,若非要舉一種特例:那就是在多worker+單進(jìn)程模式下,開(kāi)發(fā)者還是有權(quán)決定讓哪個(gè)進(jìn)程來(lái)處理哪個(gè)連接,其實(shí)想想只不過(guò)是路由到不同的端口,然后交給唯一的一個(gè)子進(jìn)程處理而已,只有一個(gè)子進(jìn)程干活還用遴選嗎?所以僅僅是一種特例而已】

  • oldtwo 2022-05-13

    再來(lái)說(shuō)一下gateway和worker通信, 那gateway與worker通信, 從多個(gè)worker 里面選擇一個(gè) 也是內(nèi)核調(diào)度的嗎

  • phpcreeper 2022-05-13

    這種情形當(dāng)然是可以從業(yè)務(wù)層面調(diào)度的【我們也知道gatewayworker框架已經(jīng)幫代勞了】,但是它和上面描述的情況根本就不是一碼事,因?yàn)榇藭r(shí)選擇哪個(gè)worker來(lái)處理是建立在先前worker已經(jīng)連接到gateway基礎(chǔ)之上這個(gè)大背景下的,但是反方向過(guò)來(lái)那就又變成了只能是內(nèi)核調(diào)度,要理解這微妙的區(qū)別,必須先把誰(shuí)是客戶端,誰(shuí)是服務(wù)端的相對(duì)角色厘清,因?yàn)槿p工的不同方向通信手段是不盡相同的。

  • oldtwo 2022-05-13

    嗯 基本上懂了 我們選定研究對(duì)象: client-7客戶端, gateway-2進(jìn)程, worker-3進(jìn)程 返回時(shí)候 也是woker-3 返回到gate-way2 吧 不會(huì)換一個(gè)gateway 進(jìn)程吧

  • phpcreeper 2022-05-13

    是滴,按照默認(rèn)路由模型,這樣就對(duì)了

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??