swoole IPC(进程通信)

2022-01-29

Unix Socket(UDS)

使用套接字的API,UDS是Linux内核实现的全内存通信,无任何IO消耗

类型1:SOCK_STREAM

  1. 需要考虑TCP数据包边界问题

类型2:SOCK_DGRAM

  1. 不需要考虑TCP数据包边界问题,发送多大的数据接收的时候就收到多大的数据,没有传输过程中的丢包、乱序问题,send写入和recv读取的顺序是完全一致的。send返回成功后一定是可以recv到
  2. 数据比较小时非常适合用SOCK_DGRAM这种方式,IP包每个最大有64k的限制,收包速度太慢操作系统缓冲区满了会丢弃包

sysvmsg

Linux提供的消息队列,通过一个文件名来作为key进行通讯,不够灵活

{/if}