Zan & Swoole2.0
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 依然是很难跨过去的坎。
## 为什么会有这么个定位呢?
1. Golang 在系统编程界相信很难撼动
2. PHP 在业务上的优势也非常明显,虽然 zan 的协程使用上用了 yield 关键词,对初学者有一定的成本,不过相信 2 个小时后让大家困惑的一定不是 yield 这个关键词,更多的是高并发服务所需要关注的资源管理、可运维性、稳定性、。。。
3. Zan 提供了很多高并发的基础组件来简化服务开发,如连接池、并发模型、defer 解决资源管理的配队问题,…
4. 当然 Zan 的方式对于很多小伙伴来说是一种非常新的模型,很多的小伙伴是来看代码的,对于代码,我们还是比较有信心的,哈哈
5. 对于大型应用来说稳定性极为重要,我们内部也有个 Swoole 维护的小分队,致力于沉淀一个 Swoole 的稳定版
## 也再次说下 Zan 的特性
1. 基于 yield
实现了独立堆栈的协程
2. 类似于 Golang 的并发编程模型实现
3. 基于 Swoole 提供非阻塞 I/O 服务
4. 连接池支持(内置 MySQL、Redis、Syslog 等多种组件)
5. 类似 Golang 的 defer 机制解决由于异常导致的资源未释放、锁未释放的问题
6. 可继承的 View 布局及组件化支持,方便完成 bigPipe/bigRender/ 首屏加载优化等不同的渲染方式
7. 基于模型驱动的 SQLMap,实现了 SQL 的快速定位及方便的 sharding、cache 支持
8. 提供类似于 Laravel 的 middleware(Filters & Terminators) 机制
9. Di 及单元测试的良好支持
10. 良好的服务化对接支持
开发交流
QQ 群:115728122
有问题你可以随时联系到我们