Swoole2.0 alpha版发布,大家可能会有个疑惑,
Zan的协程框架是不是要关门大吉了呢?
答案当然是否定的。
Zan和Swoole2.0走的方向是不一样的;
Swoole2.0的方向是希望和Golang一较高下;
Zan的定位是搭建一个Zan + Golang的生态;
Swoole2.0
鸟哥的出现确实让国人在技术界猛的一抬头。
天峰的Swoole也备战了很多年,任重道远。
Zan目前是基于Swoole搭建的,和2.0并没有什么冲突。
大家一起努力吧。
重申下Zan的定位:
Zan 的定位是高并发 Web 服务或业务中间件。
Zan 参考了很多 Golang 特性,不过目的绝不是为了替换掉 Golang。
PHP 在业务系统开发上的优势明显,而 Golang 相信会是将来系统编程的霸主。
Zan 和 Golang 的边界是:Zan做业务系统;
Golang 做系统(中间件或基础服务组件)。
而 Zan 和 Golang 编程模型的驱近,是希望能给PHP程序员一个更好的桥梁到 Golang。
理想的技术栈是:Zan + Golang + 少量的C/C++。
当然对于致力于终身coding的码农来说:Java依然是很难跨过去的坎。
为什么会有这么个定位呢?
- Golang在系统编程界相信很难撼动
- PHP在业务上的优势也非常明显,虽然zan的协程使用上用了yield关键词,对初学者有一定的成本,不过相信2个小时后让大家困惑的一定不是yield这个关键词,更多的是高并发服务所需要关注的资源管理、可运维性、稳定性、。。。
- Zan提供了很多高并发的基础组件来简化服务开发,如连接池、并发模型、defer解决资源管理的配队问题,...
- 当然Zan的方式对于很多小伙伴来说是一种非常新的模型,很多的小伙伴是来看代码的,对于代码,我们还是比较有信心的,哈哈
- 对于大型应用来说稳定性极为重要,我们内部也有个Swoole维护的小分队,致力于沉淀一个Swoole的稳定版
也再次说下Zan的特性
- 基于
yield
实现了独立堆栈的协程 - 类似于 Golang 的并发编程模型实现
- 基于 Swoole 提供非阻塞I/O服务
- 连接池支持(内置MySQL、Redis、Syslog等多种组件)
- 类似 Golang 的defer机制解决由于异常导致的资源未释放、锁未释放的问题
- 可继承的View布局及组件化支持,方便完成bigPipe/bigRender/首屏加载优化等不同的渲染方式
- 基于模型驱动的SQLMap,实现了SQL的快速定位及方便的sharding、cache支持
- 提供类似于 Laravel 的middleware(Filters & Terminators)机制
- Di及单元测试的良好支持
- 良好的服务化对接支持
开发交流
QQ群:115728122
有问题你可以随时联系到我们
欢迎关注我们的公众号