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

關于 reusePort 和 listen() 的問題

7csn

當 reusePort=true 時,listen() 在子進程中執(zhí)行;當 reusePort=false 時,listen() 在主進程執(zhí)行。
如果系統(tǒng)不支持 reusePort:
1)listen() 改為在子進程中執(zhí)行,有什么區(qū)別?
2)執(zhí)行?stream_context_set_option($this->context, 'socket', 'so_reuseport', 1);? 會產生不良結果嗎?
?

4015 2 0
2個回答

phpcreeper

1、true === reusePort 代表啟用端口復用,正常情況下不同的多個進程是無法綁定監(jiān)聽同一個端口的,但是啟用端口復用可以允許多個不同的進程監(jiān)聽同一個端口,而且會避免驚群效應。但啟用的前提是PHP_VERSION >= 7.0
2、?stream_context_set_option($this->context, 'socket', 'so_reuseport', 1) 這是針對 socket 啟用端口復用時的一個必備選項設置而已。

  • 7csn 2019-08-02

    若操作系統(tǒng)版本過低不支持端口復用,強行將 reusePort 設置為 true,workerman 能正常運行嗎?
    其實還是那兩個問題,系統(tǒng)不支持端口復用:
    1.子進程不fork父進程的listen(父進程不listen),而是自己單獨listen,可以嗎?
    1.子進程強行設置 stream_context_set_option($this->context, 'socket', 'so_reuseport', 1),workerman 能正常運行嗎?

  • phpcreeper 2019-08-02

    無法正常運行,你試下就知道了。如果不支持端口復用,那么多進程模型下,默認記住是默認不同的子進程是不允許單獨listen監(jiān)聽同一個端口的,這個上面已經(jīng)提及過;另外是父進程fork,不是子進程fork,子進程是繼承父進程fork出來的listen套接字,這也是workerman在非端口復用機制下實現(xiàn)不同的子進程監(jiān)聽同一個端口的原理所在。

  • 隨某人 2020-04-21

    @614:大佬,那么一個請求過來,比如開了 5 個子進程,哪個進程執(zhí)行?輪詢,還是一個一個執(zhí)行.

  • phpcreeper 2020-04-21

    @6972: 具體哪個進程受理當前連接這是由系統(tǒng)內核調度的,單進程內是串行受理的,多核多進程是可以看做是并行處理的。

  • 隨某人 2020-04-21

    @614:thanks

隨某人

大佬,那么一個請求過來,比如開了 5 個子進程,哪個進程執(zhí)行?輪詢,還是一個一個執(zhí)行.

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