php高性能服务框架架构与实践.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
php高性能服务框架架构与实践

PHP高性能服务化框架刘宇2016-10-08关于我毕业于北京邮电大学计算机学院曾混迹于Siemens、Motorola、Yahoo中国、淘宝 、OpenTV等公司现就职于易到用车担任架构师参与过路由交换设备、手机App、机顶盒、互联 网前后端的开发工作提纲服务化概况PSF介绍PSF应用情况服务化框架概况内部模块服务化是主流做法:RPC阿里巴巴的HSF、dubbo(Java)Facebook的thrift(C++、Java、Python、Ruby、PHP)Google grpc(通用RPC框架)Twitter的finaglePHP swoole为啥选择自造轮子简单可控,自成体系:采用标准数据格式:URL +JSON高性能要求和追求只有RPC还不够PSF系统架构架构解读service center服务注册和服务发现,负载均衡多台service center机器相互独立client直接和service机器连接和通信基于连接数的负载均衡PSF工作机制工作机制解读client和service通过socket通信manager进程和worker进程通过pipe通信manager进程为C进程worker进程为PHP进程。用C实现基于pipe通信的处理框架,调用PHP处理函数PSF特点powered by C:我们用C实现了PHP RPC应用服务器,C接管了网络连接和网络IO,性能非常强劲,框架层面不存在任何性能瓶颈改变PHP运行方式:PHP以后台daemon方式高效 运行简洁高效的协议:采用IP直连的长连接和私有二进 制协议PSF和Web Server对比优势daemon vs. request不需要负载均衡层不需要域名解析协议非常简洁,协议头只有10字节。没有臃肿的HTTP header,如Accept、Host、Content-Type、 Content-Length等等PSF程序及PHP扩展psf-server:psf_server_managerd 和 psf_service_centerdpsf-tool:psf_stat、psf_server_stat、psf_client_call等psf_server_worker扩展psf_client_sdk扩展psf-tsar-module:tsar插件PSF依赖的基础库libfastcommonlibserverframePSF 原生Service编写$start = $argc - 4;$read_fd = $argv[$start];$write_fd = $argv[$start + 1];$handle = psf_worker_init($read_fd, $write_fd, deal_message);psf_worker_loop($handle);function deal_message($service_uri, $data) {…}Service中使用全局变量尽可能兼顾web程序开发方式支持URL方式,注入$_REQUEST自动识别body中的URL encoded数据支持HTTP Header,注入$_SERVERPHP RPC框架PHP-RPC项目psf_php_client_sdk_call(driver, ‘auth/checkSession?user_id=12345sid=888888’, ‘’, 30);class file:Driver/Service/Auth/Auth.phpclass Auth {public static function checkSession($params, $data) {PSF发展历程2014年9月发布第一个版本使用PSF的模块(10+):设备认证风控系统消息中心设备中心新订单和新派单订单和派单系统重构使用PHP 7.0后端资源全部采用长连接DB:DBConnection DB PartitionDBCache:PartitionRedisRabbitMQ:DMQ? ConfigCacheDBConnection简介连接复用:连接基于DB机器,而不是databaseDBConnectionCachePartitionRedis简介采用 M * N方式,配置简单数据分片,按key求模failover机制:所有机器构成一个环,后为前备数据预热加载机制:onConnected回调函数性能表现设备中心:单机峰值QPS达到2w,RT不到1ms新老订单系统对比:RT:30ms vs 3ms机器数:20台 vs. 5台期待你的加入? 发邮件:liuyu@

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档