分类 swoole 下的文章

多个TCP服务之间的服务调用(Client 同步 && 异步)分析


今天来聊聊SWOOLE的多服务间的通讯调用吧,其实tcp服务间调用有多种方式可以实现,在上篇文章中介绍了http、websocket、tcp复合服务开发,其实就可以实现服务调用了,假如两个服务都对外提供tcp+http服务,那服务1只需要通过http的方式即可调用服务2了,这种方式也是比较容易实现的,需要注意的安全方面较少,维护的状态也比较爱少,是比较简单的一种方式,但是始终是基于http方式的服务调用。和tcp调用还是在性能方面要差一些,毕竟tcp底层基于二进制传输
今天来讲讲服务间tcp的调用

- 使用swoole_client 的同步方式进行服务调用
- 使用swoole_client 的异步方式进行服务调用

下面具体介绍实现和测试



基于swoole的多进程---非阻塞异步任务服务


今天来异步任务吧,在实际工作做非常多的场景需要我们使用到多进程异步任务来承担性能需求

  • 比如在后台导出excel的时候,这个时候如果一个人操作的话还好,顶多是让后台多处理一些时间就好,但是他会大量堵塞我们的fpm分配的进程
  • 类似的还有很多场景,我们不关心实时的收到结果和反馈,只要你放到后台去处理就好了,这样有很多好处,比如对用户很友好,比如在登录的时候,需要 发送邮件,我们可以将发送邮件这个任务直接丢到异步任务池里面,让他空闲去执行,而当用户点击发送邮件时直接返回成功,实际上任务已经丢到task中去执行了


swoole 多协议(websocket、http、tcp) 复合服务开发


最近在学习swoole,顺便记录下学习方面的事情吧,今天主要来聊聊swoole的三种协议的复用情况,并根据自己的测试分享一些理解,本次测试环境 swoole 2.1.3 php 7.1

首先来讲讲三种协议的区别吧

  • swoole_http_server 可以独立作为webserver使用,处理接受http请求
  • swoole_websocket_server webscoekt服务,主要做长连接推送服务,如im聊天即使推送等
  • swoole_server tcp服务器,基于tcp通信