入门指引 Server Client Process AsyncIO Memory HttpServer WebSocket 高级 其他

发布于 2015-08-09 09:39:45 | 128 次阅读 | 评论: 0 | 来源: 网络整理

数据包分发策略。可以选择3种类型,默认为2

  • 1,轮循模式,收到会轮循分配给每一个worker进程
  • 2,固定模式,根据连接的文件描述符分配worker。这样可以保证同一个连接发来的数据只会被同一个worker处理
  • 3,抢占模式,主进程会根据Worker的忙闲状态选择投递,只会投递给处于闲置状态的Worker
  • 4,IP分配,根据TCP/UDP连接的来源IP进行取模hash,分配给一个固定的worker进程。可以保证同一个来源IP的连接数据总会被分配到同一个worker进程
  • 5,UID分配,需要用户代码中调用$serv->bind() 将一个连接绑定1个uid。然后swoole根据UID的值分配到不同的worker进程

dispatch_mode 4,5两种模式,在 1.7.8以上版本可用
dispatch_mode=1/3时,底层会屏蔽onConnect/onClose事件,原因是这2种模式下无法保证onConnect/onClose/onReceive的顺序
非请求响应式的服务器程序,请不要使用模式1或3

SWOOLE_BASE模式

dispatch_mode 配置在BASE模式是无效的,因为BASE不存在投递任务。当reactor收到客户端发来的数据后会立即回调onReceive,不需要投递Worker进程。

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务