“Lumen是用于构建微服务的快速PHP微框架”
“为速度而生的 Laravel 框架”
看到这样的标题吃鲸了,然而PHP不是常驻内存的,并不适合作微服务的服务端。这个标题成功勾起了小马的好奇心。
官网的文字:
Lumen 是一个“微框架”,基于 Laravel 组件构建,是 Laravel 官方支持的微框架。Lumen 诞生的目的是更快的执行速度,它是目前所有微框架中速度最快的一个 -- 甚至明显快于同类框架,例如 Silex。
然而,和其他微框架不同的是,Lumen 能够让你利用 Laravel 框架的强大功能,例如 路由(routing)、依赖注入(dependency injection)、Eloquent ORM、数据库迁移(migrations)、队列任务(queued jobs),甚至定时指令(scheduled commands)。
Laravel 已经很快、很强大了,但是 Lumen 去除掉了 Laravel 所提供的很多配置和定制选项,为的就是尽可能地减少后台服务的加载时间。
Lumen 超快的执行速度与 Laravel 提供的方便特性相结合,让你能够同时享受到“微框架”与“宏框架”两者的优点,让开发工作更愉快。
Lumen is a micro-framework based on the same foundation as Laravel and built for developing microservices.
lumen 是一个微框架并且为微服务而构建,而laravel 又使用了 一些 Symfony 组件。那Symfony 是啥?
Symfony is a set of PHP Components, a Web Application framework, a Philosophy, and a Community — all working together in harmony.
Symfony 被认为是一个企业级的框架,有很多组件和成熟解决方案。
那么终极问题来了,这三者都是HTTP协议且非常驻内存的,lumen凭什么就能称作微服务框架?
曾经看过一份某电商网的架构,使用的lumen开发的微服务架构,不过其RPC是基于HTTP协议通信的。于是,开始查看laravel官网,会发现安装lumen也是需要配置apache 和nginx的。所以,lumen严格来说其实也并不是一个微服务的框架,其必须依赖web server。当然,如果结合swoole 来提供守护进程就可以向微服务服务端靠拢了。之所以把它称作微服务框架,可能是跟其框架架构的设计和微服务概念相吻合,包括路由,服务提供者,服务容器等的,这就不难理解了。
总结:lumen框架适合微服务实现,可以基于HTTP通信结合apache,nginx或者swoole 来实现服务端。
以上仅为个人观点,欢迎指正交流。
网友评论