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

如果在開(kāi)啟多個(gè)worker,由fpm通過(guò)socket來(lái)觸發(fā)推送消息,如何保證消息在一定被用戶(hù)歸屬connect的worker處理?

liuzeming

因?yàn)槎鄠€(gè)worker是競(jìng)爭(zhēng)消費(fèi)的,沒(méi)有辦法保證一一對(duì)應(yīng)。我看現(xiàn)在的解決方案只有使用channel注冊(cè)訂閱的方式,還有其它方案可以解決嗎

2199 3 0
3個(gè)回答

phpcreeper

對(duì)于純workerman環(huán)境:
一個(gè)socket連接一旦連接到哪個(gè)worker進(jìn)程,那么后續(xù)這個(gè)連接上的消息依然還是由相應(yīng)的這個(gè)worker進(jìn)程來(lái)處理的;【worker節(jié)點(diǎn)依賴(lài)內(nèi)核調(diào)度實(shí)現(xiàn)】
再比如gatewayworker環(huán)境:
也有類(lèi)似的實(shí)現(xiàn)機(jī)制,gateway轉(zhuǎn)發(fā)連接連接到businessworker時(shí),一開(kāi)始隨機(jī)路由選擇一個(gè)worker進(jìn)程,在此之后同一連接繼續(xù)轉(zhuǎn)發(fā)來(lái)的消息就會(huì)自動(dòng)交由給先前路由好的那個(gè)進(jìn)程?!緒orker節(jié)點(diǎn)依賴(lài)內(nèi)核調(diào)度實(shí)現(xiàn),轉(zhuǎn)發(fā)節(jié)點(diǎn)之間則依賴(lài)應(yīng)用實(shí)現(xiàn)】

  • liuzeming 2020-07-18

    對(duì)于純workerman環(huán)境:有沒(méi)有內(nèi)核版本限制呢,我看3.9以上使用了端口復(fù)用SO_REUSEPORT可以實(shí)現(xiàn)同一個(gè)連接一直由同一個(gè)worker處理(內(nèi)核根據(jù)tcp四元組hash負(fù)載均衡)。

  • phpcreeper 2020-07-18

    進(jìn)程的負(fù)載均衡是需要開(kāi)啟端口復(fù)用機(jī)制、workerman已經(jīng)支持、另linux內(nèi)核好像是需要2.6以上即可。

  • liuzeming 2020-07-18

    @614:我在網(wǎng)上查,內(nèi)核要3.9以上。如果沒(méi)有3.9以上,感覺(jué)就只能夠單進(jìn)程或者使用channel了

小陽(yáng)光

每個(gè)worker 維持部分連接。所以單進(jìn)程或者使用channel可以。換個(gè)角度想,可不可以每個(gè)進(jìn)程開(kāi)啟一個(gè)udp內(nèi)部端口,接收廣播,有這個(gè)id就做事,沒(méi)就不管。廣播如果有廣播風(fēng)暴,用redis隊(duì)列呢?或者消息隊(duì)列,同理在我這,我就處理,沒(méi)有我就不管。

  • liuzeming 2020-07-20

    開(kāi)啟一個(gè)udp內(nèi)部端口,接收廣播,有這個(gè)id就做事,沒(méi)就不管,channel就是這個(gè)原理。redis或者消息隊(duì)列用不了,會(huì)阻塞

喵了個(gè)咪

每個(gè)worker進(jìn)程開(kāi)一個(gè)內(nèi)部端口,每個(gè)進(jìn)程內(nèi)部端口不一樣,這樣就可以用socket連對(duì)應(yīng)的進(jìn)程內(nèi)部端口,就能保證消息在一定被用戶(hù)歸屬connect的worker處理。不過(guò)前提是你知道用戶(hù)歸屬connect的worker是哪個(gè)進(jìn)程。

  • liuzeming 2020-07-20

    這種處理方式是不優(yōu)雅的,相當(dāng)于你需要起很多不同的端口才行,而且都只能夠單進(jìn)程

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