page contents

swoole(第一节课笔记)

一個很菜的程序猿

1.swoole简介

    1.swoole纯C/C++编写的php扩展,不依赖其他扩展和库。

    2.swoole是 php 高性能、协程的通讯引擎。支持多种通信协议的网络服务器和客户端模块。

2.框架加速

    框架的条件必须是ioc类型,swoole是常驻类型

    ioc类型:

3.TCP

    http与websocket均继承与tcp服务端、也就实现tcp服务端中的方法。

    可靠、稳定连接的数据传输

4.UDP


5.网络协议分层(5层)

    请求过程:发起请求->到交换机->解析出目标地址的ip和端口->发送到目标服务器

    请求结构:header + data  

    每台机器都有mac地址和网络分配的ip地址

    实体层->数据链接层->网络层->传输层->应用层
    attachments-2020-11-6DtFi4Wa5fa4afdf1c35b.png
    Socket层-抽象层:Socket是用于给程序与程序之间通信的一个中间层,可以理解为是一个文本资源,程序会对socket进行读写操作而交互的程序或者系统内核也会监听socket的信息变化而执行相应的信息传输

    应用层:应用层就是具体的应用程序了,收发传输层的数据,并进行解析。这是最高的一层了,直接面对用户。应用层的主要功能是封装或者解析具体应用的数据。
attachments-2020-11-A20L9OPQ5fa4af8af23c4.png


    传输层:传输层的主要作用是使用端口号将网络层主机对主机的通信转换成进程对进程的通信我们还需要一个参数,表示这个数据包到底供哪个程序(进程)使用。这个参数就叫做“端口”(port)0到65535 以及协议tcp/udp

    网络层:实际就是指ip的校验和处理,本机根据数据包的ip判断是转发还是给自己;而网络层的作用就是用于寻找目标主机因为mac地址不具备这样的功能。如果mac地址相符则可以任务是发送给你、这个时候我们还需要往下解析看是发送给自己还是需要自己转发信息。

    数据链接层:使用物理层的数据传输功能,为网络层提供点对点的数据通信服务,而实现这个功能的地址我们称之为MAC地址

    实体层:光缆、电缆、双绞线、无线电波等。这一层的主要功能就是把比特位转换位电信号,为链路层提供在真实介质上数据传输功能。实体层根据这个波转化为信息也就是数据包
attachments-2020-11-ElbNdOAv5fa4ae3e7c814.png

6.swoole结构运行

    attachments-2020-11-Ov9gS4yr5fa4b0c1023d5.png

    Master:主进程这个是swoole的主进程,这个进程是用于处理swoole的核心事件驱动的

    Manger:管理进程对于worker、task进程的创建、回收等操作全权有“保姆”Manager进程进行管理。

    worker:工作进程worker 进程属于swoole的主逻辑进程,用户处理客户端的一系列请求

    task:异步任务工作进程taskWorker进程这一进城是swoole提供的异步工作进程


    官方图解:https://wiki.swoole.com/#/server/init
attachments-2020-11-rI2J8oCN5fa4b10362258.pngattachments-2020-11-GqJd8A5e5fa4b10c88b31.png

7.进程

    7.1  PHP创建进程示例

        //开始创建子进程

        $son_pid = pcntl_fork();//返回子进程的id

        //查看当前进程

        echo '创建子进程之后当前的进程为:'.posix_getpid().PHP_EOL;

        //创建了子进程之后

        if($son_pid > 0){

          echo '子进程id:'.$son_pid.PHP_EOL;

        }

        while (true) {}


    7.2  pcntl_fork()系列函数解释

        手册地址 :https://php.golaravel.com/function.pcntl-fork.html

        该函数默认被禁止,需要自己去php.ini中开启

        ps -aux | grep swoole  查看进程

        netstat -tnlp | grep 端口 产看端口是否监听




  • 发表于 2020-11-06 10:27
  • 阅读 ( 626 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
百日慕晴
百日慕晴

2 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章