开发文档 v2.x

开发文档 v2.x

更新时间:2023年1月10日 11:24 浏览:2088

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 毫秒的响应速度(下图)。因服务器配置限制,性能有很大提升空间

 

ms-response.jpg

 

通过 docker stats 查看 程序仅占用 十几M 的内存(下图)

demo-docker-stats.jpg

 

尽可能重用(不仅限代码,更偏重于对象,连接,资源等)

BE工厂控制对象、数据库连接池,Redis 连接池等资源的创建、管理及回收,海量并发时这些资源重复使用,

 

缓存优先,避免外部流量直接传递到数据库

BE双驱框架本身,及我们开发的相关产品,大部分为高负载实现。很多以 ES 和 Redis 驱动,应用中产生的数据及更新,通过可配置的计划任务实时或准实时同步到 ES 或 Redis 中,用户访问时,仅从 Redis 缓存中读取, 从 ES 中模糊查询。针对亿级以上的数据量,仍可提供毫秒级操作。

 

在效率基础上,功能,界面尽可能简洁实用,可插拨,可配置

框架本身已实现应用,主题,日志、存储(文件/远端对象存储)、ES、Redis、缓存、配置项、计划任务、CDN加速、用户、权限,菜单、常用功能插件(CURD,表单,报表等),伪静态(常规/正则/自定义)等基础功能。开发人员可通过安装应用、主题、@注解、Config 配置文件、代码中的配置数组、操作界面开关 等各种渠道任意聚合网站的功能和界面。

 

BE 双驱框架适用场景

天下武功,唯快不破,软件设计也如此。

不论您想做任何行业的网站项目,几乎都能找到相关的开源程序,我们发现,多数开源程序本身,仅仅解决的是“有没有”的问题,而鲜少关注性能参数,当项目投入了大量资源进行推广,海量用户涌来时,系统是否有足够的负载能力?如果没有,那将带来巨大的损失,甚至此前的努力前功尽弃。

BE双驱框除了功能本身,更关注海量用户的的负载能力及可靠性。

BE双驱框提供一个基础平台。让决策人员可以高屋建瓴,站在新的高度进行项目规

 

 

 

导航