关于 reusePort 和 listen() 的问题

当 reusePort=true 时,listen() 在子进程中执行;当 reusePort=false 时,listen() 在主进程执行。
如果系统不支持 reusePort:
1)listen() 改为在子进程中执行,有什么区别?
2)执行 stream_context_set_option($this->context, 'socket', 'so_reuseport', 1);  会产生不良结果吗?
 
已邀请:

blogdaren - 乐于分享的PHP码农【http://www.blogdaren.com】

赞同来自:

1、true === reusePort 代表启用端口复用,正常情况下不同的多个进程是无法绑定监听同一个端口的,但是启用端口复用可以允许多个不同的进程监听同一个端口,而且会避免惊群效应。但启用的前提是PHP_VERSION >= 7.0
2、 stream_context_set_option($this->context, 'socket', 'so_reuseport', 1) 这是针对 socket 启用端口复用时的一个必备选项设置而已。

要回复问题请先登录注册