PHP高性能服务化框架介绍.pptx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
**PHP高性能服务化框架概述** 服务化是一种将大型复杂系统分解为多个小型、独立的服务的架构模式,这种模式有助于提高系统的可维护性、可扩展性和灵活性。PHP高性能服务化框架,如PSF(PHP Service Framework),是针对PHP编程语言设计的一种解决方案,旨在提升PHP在服务化场景下的性能和效率。 **PSF框架介绍** PSF全称为PHP Service Framework,它采用了内部模块服务化的主流做法,主要基于RPC(Remote Procedure Call)进行通信。RPC允许不同进程间的调用,如同调用本地函数一样调用远程服务。PSF借鉴了阿里巴巴的HSF、dubbo,Facebook的thrift,Google的gRPC以及Twitter的finagle等框架的设计理念,但针对PHP环境进行了优化。 **选择自造轮子的原因** 尽管存在多种成熟的RPC框架,但PSF选择自主研发的原因在于其希望保持简单可控且自成体系。PSF使用标准的数据格式URL + JSON,同时追求高性能,认为仅依赖RPC还不足以满足这些需求。 **PSF系统架构** PSF的架构包括服务注册和服务发现、服务中心和服务客户端。服务注册和服务发现通过服务中心实现,可以支持多台服务中心独立运行,客户端直接与服务实例进行通信。此外,PSF采用了基于连接数的负载均衡策略。 **工作原理** 在PSF中,client和service通过socket进行通信。manager进程和worker进程通过pipe进行通信,其中manager进程为C进程,负责管理worker进程,而worker进程由PHP编写,处理具体的业务逻辑。C实现的pipe通信框架提高了性能,避免了性能瓶颈。 **PSF的特点** 1. **powered by C**: PSF使用C语言实现了PHP的RPC服务器,提升了网络连接和网络I/O的性能。 2. **改变PHP运行方式**: PHP以后台daemon的方式高效运行,提高服务处理能力。 3. **简洁高效的协议**: 使用IP直连的长连接和私有二进制协议,减少协议头的冗余信息,如HTTP Header。 **与Web Server对比** 与传统的Web Server相比,PSF的优势在于: - **daemon vs. request**: 无需处理每个请求的生命周期,而是持续监听和服务。 - **无需负载均衡层**: 客户端直接与服务实例通信,减少了中间环节。 - **协议简洁**: 协议头只有10字节,避免了HTTP的繁杂Header。 **PSF组件和扩展** PSF包含了多个组件和扩展,如: - psf-server: 包含psf_server_managerd和psf_service_centerd。 - psf-tool: 提供如psf_stat、psf_server_stat、psf_client_call等工具。 - psf_server_worker扩展: 用于服务端worker进程。 - psf_client_sdk扩展: 用于客户端SDK。 - psf-tsar-module: 为tsar监控系统提供插件。 **基础库依赖** PSF依赖libfastcommon和libserverframe这两个基础库,它们提供了底层的支持。 **服务编写和全局变量** PSF原生服务的编写方式简洁,支持URL方式调用,并能自动处理URL encoded数据和HTTP Header。服务中可以使用全局变量,兼顾web程序开发的便利性。 **PHP RPC框架** PHP-RPC项目提供了psf_php_client_sdk_call方法进行调用,支持静态方法调用。此外,还支持类文件结构,如Driver/Service/Auth/Auth.php。 **PSF的发展历程** PSF自2014年9月发布第一个版本以来,已被多个模块(如设备认证、风控系统、消息中心等)采用。随着技术的不断迭代,PSF开始支持PHP 7.0,后端资源全面采用长连接,如DBConnection、PartitionDB、PartitionRedis和DMQ等。 **性能表现** 在实际应用中,PSF展现出了出色的性能,如设备中心单机峰值QPS达到2万,RT(响应时间)低于1毫秒。新老订单系统对比显示,RT降低了约10倍,所需机器数量也大幅减少。 PSF作为一款PHP高性能服务化框架,通过技术创新和优化,成功地提升了PHP在服务化场景下的性能,为企业级服务化提供了有力支撑。
- 粉丝: 8930
- 资源: 19万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言-leetcode题解之70-climbing-stairs.c
- C语言-leetcode题解之68-text-justification.c
- C语言-leetcode题解之66-plus-one.c
- C语言-leetcode题解之64-minimum-path-sum.c
- C语言-leetcode题解之63-unique-paths-ii.c
- C语言-leetcode题解之62-unique-paths.c
- C语言-leetcode题解之61-rotate-list.c
- C语言-leetcode题解之59-spiral-matrix-ii.c
- C语言-leetcode题解之58-length-of-last-word.c
- 计算机编程课程设计基础教程