聊聊 2018 年后端技术趋势

今天太忙,少写一点,后面再补充。编程

异步模式

Go 语言愈来愈热门,不少大型互联网公司后端正在转向 GO 。Java 圈知名的服务化框架 Dubbo 也宣布转型异步模式。这是一个大趋势,异步模式已经被市场验证和承认。后端

在 Web 服务器选择上,几年前大部分人就开始选择异步非阻塞的 Nginx,而不是同步阻塞的 Apache。就是由于 Nginx 这样的异步程序,它的适应性更好、并发能力更强。如今在后端业务开发编程方面,技术力量强的团队已经开始将技术栈从同步模式切换为异步了。服务器

同步阻塞模式存在较多缺陷,并发能力弱、适应性差、慢速请求致使服务不可用。如:后台接口中调用第三方 API 的场景,同步模式效果极差。过去那些使用 Java、PHP、C++、Python、Ruby 语言开发的同步阻塞模式框架,用的人愈来愈少。swoole

Node.js

虽然 Node.js 也很热门,很流行,但仍然不多见到企业将 Node.js 做为公司后端方面的主要编程语言。C++、Java、PHP、Python 语言一样也有一些相似的方案,包括 Swoole-1.0 也是基于相似于 Node.js 的异步回调模式。并发

本质缘由是异步回调的技术方案,以及在它之上所作的一些优化方案,包括 Promise、Future、Yield/Generator、Async/Await 等,改变了程序开发的风格和习惯。若是要使用这些技术,那么工程师须要额外学习这些关键词和函数的使用方法。框架

使用这些技术方案是没法兼容已有程序的。能够说研发成本巨大,难以平滑过渡。影响了异步回调技术栈的普及。这种编程模式很难让全部人都接受。异步

协程

而协程模式,兼顾了同步阻塞的可维护性和异步非阻塞的高并发能力。将会成为将来后端开发领域的主流技术方案。编程语言

最重要的,协程模式只须要对已有项目代码进行少许调整就能够运行起来,甚至能够彻底兼容老项目。只须要框架层进行兼容便可。这使得团队能够平滑过渡。函数

使用协程模式,开发者彻底不须要学习额外的关键词和函数用法。编码风格与同步模式下是彻底一致的。高并发

各类协程技术里,GO 是最耀眼的那一个。协程、通道、静态语言、性能、富编译、标准库丰富、生态完整、Google 等,优点太多了。GO 语言,我的认为是目前全部编程语言中,最值得学习的

Swoole 2.x 让 PHP 这门 20多年历史的老牌后台编程语言也能有协程的能力。相比 Go 这样的技术,PHP + Swoole 的技术栈,更适合快速开发、快速迭代、业务驱动的场景。毕竟动态语言比静态语言仍是要更加灵活、开发效率更高。而 Go 更适合编写系统级软件、核心业务。

2018 年我重构了 swoole framework 这个很老的项目,底层支持 Swoole 2.x 协程模式。主要缘由是车轮公司内部有不少项目基于这个框架,尤为是服务层所有用了 swoole framework。咱们但愿业务代码一行不改,能够一键切换为协程模式。理论上其余的同步阻塞 PHP 框架,如 Laravel 、Yii ,均可以实现只修改底层兼容 Swoole 2.x 协程,实现项目代码无缝切换协程模式。

使用协程后,整个系统的性能、并发能力、稳定性有了巨大提高。过去,线上常常出现一个慢请求致使整个服务器卡住的问题不存在了。

PHP & Swoole

虽然 Swoole 2.0 只有不到两年的历史,相比 Go 语言 10 年的耕耘,还有很长一段路要走。但相比 GO 这样的静态语言,PHP + Swoole 仍是有不少优点的,PHP 更加简单易用,PHP 是动态语言,使用起来更加灵活。

固然,若是是新项目仍是推荐使用 Swoft 这个专门为 Swoole 2.x 的框架,它的历史包袱更少,所以稳定性更好。

如今有了 Swoole 2.0 协程,咱们对 PHP 的将来仍然充满信心。

相关文章
相关标签/搜索