开发文档 v2.x
BE双驱框架名称
BE 是英文单词 Beyond Exception 的缩写,因为底层实现了 普通 PHP 和 Swoole 两套驱动,可在不改动代码的情况下根据需求部署在不同环境下,因此它又是一个双驱动框架。
BE 双驱框架的设计思想
- 双驱动,底层隔离,上层统一。
- 为高并发、高负载、高可用而生。
- 尽可能重用(不仅限代码,更偏重于对象,连接,资源等)。
- 缓存优先,避免外部流量直接传递到数据库。
- 在效率基础上,功能,界面尽可能简洁实用,可插拨,可配置。
双驱动,底层隔离,上层统一
框架本身提供了两个入口:index.php (普通 PHP), server.php (Swoole,通过 php server.php 启动),入口不同,系统加载的驱动不同,不会加载额外的类,不存在两种模式下的资源转换,两套驱动封装的功能采用了统一的接口,开发人员在普通 php 环境下进行开发和调试。无需改动任何代码,最终程序即可完美运行在 Swoole 环境下。
为高并发、高负载、高可用而生
借助于Swoole 的常驻内存,异步协程,连接池等机制,部署于 Swoole 环境下的 BE双驱框架 可轻松实现 C10K 高并发。高负载。
BE双驱框架示例程序 https://demo.phpbe.com. (代码 和 Redis、Mysql 部署在一台阿里云服务器内,配置为1核1G,深圳机房,Docker 环境), 在深圳地区访问,轻松实现 14 毫秒的响应速度(下图)。因服务器配置限制,性能仍有很大提升空间。
通过 docker stats 查看 程序仅占用 十几M 的内存(下图)
尽可能重用(不仅限代码,更偏重于对象,连接,资源等)
BE工厂控制对象、数据库连接池,Redis 连接池等资源的创建、管理及回收,海量并发时这些资源重复使用,
缓存优先,避免外部流量直接传递到数据库
BE双驱框架本身,及我们开发的相关产品,大部分为高负载实现。很多以 ES 和 Redis 驱动,应用中产生的数据及更新,通过可配置的计划任务实时或准实时同步到 ES 或 Redis 中,用户访问时,仅从 Redis 缓存中读取, 从 ES 中模糊查询。针对亿级以上的数据量,仍可提供毫秒级操作。
在效率基础上,功能,界面尽可能简洁实用,可插拨,可配置
框架本身已实现应用,主题,日志、存储(文件/远端对象存储)、ES、Redis、缓存、配置项、计划任务、CDN加速、用户、权限,菜单、常用功能插件(CURD,表单,报表等),伪静态(常规/正则/自定义)等基础功能。开发人员可通过安装应用、主题、@注解、Config 配置文件、代码中的配置数组、操作界面开关 等各种渠道任意聚合网站的功能和界面。
BE 双驱框架适用场景
天下武功,唯快不破,软件设计也如此。
不论您想做任何行业的网站项目,几乎都能找到相关的开源程序,我们发现,多数开源程序本身,仅仅解决的是“有没有”的问题,而鲜少关注性能参数,当项目投入了大量资源进行推广,海量用户涌来时,系统是否有足够的负载能力?如果没有,那将带来巨大的损失,甚至此前的努力前功尽弃。
BE双驱框除了功能本身,更关注海量用户的的负载能力及可靠性。
BE双驱框提供一个基础平台。让决策人员可以高屋建瓴,站在新的高度进行项目规划。