概述
Swoole的出现,使PHP语言不再局限于传统的 Web领域,对中小企业有很好的支持,有一些企业盲目的追求微服务和K8s,我真诚建议不要轻易上微服务,上了你才知道这里面的辛酸,高成本、低效率会拖碎整个团队,研究中小企业的提效、节省成本是我未来的研究的新方向。
技术方案选型的初衷
现在所有的行业内都面临着严重挑战,如我一般的程序员在行业内摸爬滚打已经快10个年头,主要围绕着Web后端领域的工作,从初级的CURD,到现在每天都在寻找着出路,看看有没有能实际解决一些企业的痛点和实际的问题,所有的技术方案选型的初衷:提高效率、节省成本(服务器成本、技术人员成本)。
10年间,我从PHP语言开始,也写过Go和Python,所谓的云原生和人工智能多半都是大厂至尊玩家才能玩得起的,中小型企业的痛点根本就支撑不了这么大的成本。
真诚的推荐使用Swoole引擎,PHP语言的升级版,来实现基础的Web服务,研究中小企业的提效、节省成本是我未来的研究的新方向。
10年间我得到的最大启示就是为了学而学,向面向加薪学习的转变,一个技术人,创造实际的价值才是硬道理,不管是微服务、还是分布式、单体架构还是中台,都是工具而已。
Swoole是什么
Swoole 是一个使用 C 语言编写的基于异步事件驱动和协程的并行网络通信引擎,为 PHP 提供协程、高性能网络编程支持。提供了多种通信协议的网络服务器和客户端模块,可以方便快速的实现 TCP/UDP服务、高性能Web、WebSocket服务、物联网、实时通讯、游戏、微服务等,使 PHP 不再局限于传统的 Web 领域。
Swoole特性
Swoole使用C/C 语言编写,提供了PHP语言的异步多线程服务器、异步TCP/UDP网络客户端、异步Mysql、异步Redis、数据连接池、消息队列、毫秒定时器、异步文件读写、异步DNS查询。
Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。
除了异步I/O的支持之外,Swoole为PHP多进程的模式设计了多个并发数据结构和IPC通信机制,可以大大简化多进程并发编程的工作。其中包括了原子计数器、Table、Channel、Lock、进程间通信IPC等丰富的功能特性。
协程支持:
Swoole4.0支持了类似Go语言的协程,可以使用完全同步的代码实现异步程序。PHP代码无需额外增加任何关键词,底层自动进行协程调度,实现异步I/O。
Swoole的优点
- 高性能的异步
- 提供了网络通信的能力
- 方便地开发Http、WebSocket、Tcp、Udp等应用
- 协程
Swoole提供了常驻内存、协程异步,这让PHP高性能微服务架构成为现实。
Swoole为什么适合做微服务
前因:传统PHP语言属于脚本语言,有php-fpm
和php-cli
两种模式,服务器需要配合Apache或者是Nginx,再全民创业的浪潮里Lamp和Lnmp可以说是最拉风的黄金搭档。
随着后来创业浪潮过后,微服务这一套玩起来之后,Swoole就应运而生了,尽管有很多人喜欢(K8s Go)的那套,但是毕竟不是每个企业都能烧的动庞大的成本,如果规模不大,Swoole完全可以胜任百万级、千万级的流量所以我建议你使用Swoole来实现微服务。