转载

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 + Go + 少量的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

有问题你可以随时联系到我们

原文  http://tech.youzan.com/zan-swoole2/
正文到此结束
Loading...