基于Swoole实现分布式系统

来自PHP百科全书
跳转至: 导航搜索

集群Cluster

可以将服务器节点分为3种角色

AccessNode

入口节点,也可以叫做GateWay网关,外部用户通过TCP直接连接到AccessNode,由AccessNode与客户端维持长连接,并进行数据交互。

  • Web服务集群,Nginx 就是AccessNode(GateWay),浏览器通过外网连接到Nginx,Nginx解析处理请求。如果是静态文件请求,直接将文件内容发给客户端。如果是动态的php请求,Nginx转发给后端的PHP-fpm或其他语言的应用服务器出处理。
  • WebIM,WebIM一般使用Http长轮询(Comet)或WebSocket作为AccessNode,浏览器直接连接到swoole_websocket_server上,实现消息的实时交互。


AccessNode必须全异步的,才能保证整个系统可以应对大量并发。AccessNode要监听外网,

ServiceNode

服务节点,业务逻辑全部在ServiceNode完成。大型的Web网站还会细分为Web层和逻辑层,Web仅负责前端展现,真正的业务逻辑的全部放到后端逻辑层Server上。