• Swoole学习-Swoole入门指南


    初识Swoole
    Swoole官网:https://www.swoole.com/

    Swoole官方文档:https://wiki.swoole.com/       

    预备相关知识素材推荐

    入门书籍:《tcp/ip网络编程(尹圣雨 韩)》。
    深入书籍:《unix环境高级编程(中文第三版)》;《unix网络编程卷1:套接字联网》;《unix网络编程卷2:进程间通信》。
    版本
    已更新至4.3.x。swoole2.0增加协程。swoole3.0以上版本要求php>=7.0。

    开发辅助工具

    Swoole 4.X速查表:https://toxmc.github.io/swoole-cs.github.io/

    ide提示工具:https://github.com/swoole/ide-helper

    这2个工具挺实用的,截图如下:

     

    IDE helper包下载后放进任意目录,然后IDE include path即可。

    Swoole入门指引


    swoole底层是C写的。swoole系列函数可以理解为swoole提供给php的api,php通过swoole系列函数调用swoole的api,来启动swoole服务、注册回调函数等,swoole的事件驱动来执行对应的回调函数。这完全区别于普通的php扩展只提供库函数,而对于swoole,php只是传递的作用,真正的程序控制权是swoole。


    学习swoole的基础知识

    linux是必须的。学习swoole需要对进程、线程、异步同步、IO复用、reactor模型、进程间通讯、信号等概念有所了解,可学习《tcp/ip网络编程》这本书做简单的理解,通过php对应的扩展,借鉴workman源码来理解机制,这样会对swoole的学习有很大帮助。

    swoole并没有用libevent,所以不需要安装libevent。swoole并不依赖php的stream/sockets/pcntl/posix/sysvmsg等扩展

    libevent是一个事件驱动库,php有对应的event扩展,可帮助理解swoole的io复用和事件机制。
    stream/sockets是网络通讯的工具、可帮助理解swoole的tcp/udp/http。
    pcntl/posix是进程控制扩展,可帮助理解swoole中的多进程、进程间通讯。
    sysvmsg消息队列,可帮助理解swoole中的task模块。

    Swoole提供的功能库
    swoole提供了哪些功能给我们用,以为我们用到哪些服务时,可以用swoole来帮我们实现。

    http服务 ,编写一个简单的web server。
    TCP/UDP服务 ,编写一个消息接受处理系统。
    异步,可以异步的处理请求。
    并发 ,可以并发的处理同一个业务逻辑。
    socket,socket通讯处理技术。
    毫秒级别定时器,可以在php中使用定时器了。
    协程,相比线程更稳定和好用。
         如果你的业务中,有用到以上等特性,你又在用使用php,那么完全可以用swoole来完成了,再具体点的场景如下:

        1、互联网;    2、移动通信;   3、企业软件;   4、云计算;   5、网络游戏;   6、物联网(IOT);   7、车联网;   8、智能家居等领域

    Swoole的框架
           Swoft 首个基于 Swoole 原生协程的新时代 PHP 高性能协程全栈框架,内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的 PHP-FPM,全异步非阻塞 IO 实现,以类似于同步客户端的写法实现异步客户端的使用,没有复杂的异步回调,没有繁琐的 yield, 有类似 Go 语言的协程、灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等,可以用于构建高性能的Web系统、API、中间件、基础服务等等。

            EasySwoole EasySwoole 是一款基于Swoole Server 开发的常驻内存型PHP框架,专为API而生,摆脱传统PHP运行模式在进程唤起和文件加载上带来的性能损失。EasySwoole 高度封装了Swoole Server 而依旧维持Swoole Server 原有特性,支持同时混合监听HTTP、自定义TCP、UDP协议,让开发者以最低的学习成本和精力编写出多进程,可异步,高可用的应用服务。

           SwooleDistributed SwooleDistributed 老牌Swoole框架拥有最完善的开发工具以及最强大的功能,首创SDHelper开发者工具包和开发者调试命令集,可以进行单元测试,捕获客户端流量分析,可视化的进行远程断点联调,还具备代码覆盖率检测的功能(swoole与xdebug扩展不兼容,SDHelper无需xdebug扩展),并且内置组件极其丰富(类MQTT强悍的订阅发布/Actor模型/内存高速缓存/事件派发/进程管理/定时任务/AMQP任务调度/后台监控/集群/微服务/RPC/异步连接池/自定义命令等等),开发者可以直接使用加快开发进度。几乎所有的功能都支持集群化,单机切换到集群无需对代码做任何的修改。如果业务开发比较复杂比如(游戏开发)那么SD框架将是你的不二之选。

    swoole进程结构


    Master主进程
    manager管理进程
    worker子进程
    task任务进程
    MainReactor主线程
    reactor线程组


    Swoole的进程/线程模型

     

    Swoole程序的执行流程


    原文链接:https://blog.csdn.net/yan_dk/java/article/details/89445254

  • 相关阅读:
    Altera的FPGA_常见问题汇总65
    图像处理中振铃现象 分类: 图像处理 2014-12-16 23:40 565人阅读 评论(0) 收藏
    空域高斯滤波与频域高斯滤波 分类: 图像处理 2014-12-13 14:52 560人阅读 评论(0) 收藏
    灰度世界算法(Gray World Algorithm) 分类: 图像处理 Matlab 2014-12-07 18:40 874人阅读 评论(0) 收藏
    Retinex系列之McCann99 Retinex 分类: 图像处理 Matlab 2014-12-03 11:27 585人阅读 评论(0) 收藏
    Retinex系列之Frankle-McCann Retinex 分类: Matlab 图像处理 2014-12-01 21:52 538人阅读 评论(2) 收藏
    Tenegrad评价函数 分类: 图像处理 Opencv 2014-11-12 20:46 488人阅读 评论(0) 收藏
    Base64编码与解码 分类: 中文信息处理 2014-11-03 21:58 505人阅读 评论(0) 收藏
    VS2010下安装Opencv 分类: Opencv 2014-11-02 13:51 778人阅读 评论(0) 收藏
    循环队列 分类: c/c++ 2014-10-10 23:28 605人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/ivy-zheng/p/12618212.html
Copyright © 2020-2023  润新知