收藏 分销(赏)

服务化的网站架构.ppt

上传人:pc****0 文档编号:13347616 上传时间:2026-03-05 格式:PPT 页数:37 大小:656.68KB 下载积分:10 金币
下载 相关 举报
服务化的网站架构.ppt_第1页
第1页 / 共37页
服务化的网站架构.ppt_第2页
第2页 / 共37页


点击查看更多>>
资源描述
服务化的网站架构,大型,PHP,开发团队中,大规模功能服务化的网站架构经验分享,Photo,Diary,Friend,Feed,Music,Poll,Invite,message,search,目录,前言,常规的开发模式,潜藏的问题,服务化的开发模式,解决方案(,PHP FastRPC,、,PHP Services Proxy),小结,目录,前言,常规的开发模式,潜藏的问题,服务化的开发模式,解决方案(,PHP FastRPC,、,PHP Services Proxy),小结,前言,分享的目标:,了解小型系统的功能模块如何,转变,为大型系统的服务,了解两个技术:,PHP FastRPC,API Platform,开拓,PHP,领域大型网站架构的思路,思考大型网站的技术团队的,人才,梯队建设,插播,糖果社区,目录,前言,常规的开发模式,潜藏的问题,服务化的开发模式,解决方案(,PHP FastRPC,、,PHP Services Proxy),小结,常规的开发模式,假设如下场景,你是某大型,SNS,网站,(PV 1000W+),的技术,Leader,你拥有,30,名,能力不一,的,PHP,工程师,这,30,名工程师各负责一个模块开发(如:,Photo,,,Music,等),你拥有,100,台,运行在线上的服务器,常规的开发模式,常规的网站架构中,,PHP,开发人员按照,MVC,设计模式,将所有产品需求分解成为一个个,PHP Model,文件,Models,User.php,Class User,Photo.php,Class Photo,Music.php,Class Music,Feed.php,Class Feed,常规的开发模式,100,台服务器采用了负载均衡设备,并且依据功能进行了服务器物理分离,以获得,高可用性、高可扩展,Web Server,Web Server,Web Server,Web Server,Web Server,Web Server,Server,Web Server,Web Server,Balance,常规的开发模式,为了获得系统的,高性能,,你使用了,Memcache,进行数据缓存,使用,Redis,进行异步处理,使用,Xcache,进行,PHP,代码加速,使用,Innodb,减少查询锁等等,也对,30,名开发人员进行了尽可能的大型网站架构、代码优化培训。,常规的开发模式,这样的架构已经很主流,还有什么可担心的?,目录,前言,常规的开发模式,潜藏的问题,服务化的开发模式,解决方案(,PHP FastRPC,、,PHP Services Proxy),小结,潜藏的问题,常规开发模式下,负责,SNS,网站首页的,PHP,工程师,A,君希望访问,B,君的相册功能,通过加载,Model,文件并实例化对象,然后调用相应方法,如下:,Index.php,getList();,?,潜藏的问题,问题,1,:程序代码,高度耦合,、功能模块,不可控!,Linux Process,Index.php,Photo.php,Photo.php,实例的任何严重异常都会造成,Index.php,进程的崩溃,,Index.php,被动宿主,如果,$photo-getList(),出现,SQL,慢查询,将导致,Index.php,进入阻塞状态,无法超时断开,潜藏的问题,问题,2,:,安全,性无保障,Photo.php,文件中如果涉及到加解密算法,由于是通过共享源代码方式互相调用,加密算法的安全性无法得到保障,也无法对数据库的来源请求进行严格,IP,限制,例如支付类型的功能模块。,潜藏的问题,问题,3,:环境,配置依赖,宿主环境的配置必须包含与调用的模块所需要的所有配置,否则模块无法执行,任何模块的版本发布都必须同步源代码至所有服务器,Web Server 1,Linux Process,Index.php,Photo.php,User.php,Web Server N,Linux Process,Index.php,Photo.php,User.php,潜藏的问题,实际上,负责首页的,A,君不仅仅只调用一个相册功能,通常还调用,C,君的,User.php,和,D,君的,Feed.php,Index.php,getList();,Include(Model/User.php);,$user=new User();,$user-get(Name);,Include(Model/Feed.php);,$feed=new Feed();,$feedgetList();,Include(Model/Diaryphp);,$diary=new Diary();,$diarygetList();,潜藏的问题,在一个,30,人的大型,PHP,开发团队中,在一个日,PV1000W,的网站中,显然这样通过,共享源代码,以互相调用模块功能的开发模式非常令人担心,架构的,骨牌效应,随时都可能因为某位工程师的不小心而爆发,Linux Process,Index.php,Photo.php,User.php,Poll.php,Diary.php,Feed.php,目录,前言,常规的开发模式,潜藏的问题,服务化的开发模式,解决方案(,PHP FastRPC,、,PHP Services Proxy),小结,服务化的开发模式,服务化的开发模式是将常规的开发模式中,,Model,部分的功能通过某种分布式技术,在物理层面抽象成为,独立运行,的系统;,服务化的开发模式,将常规开发模式中的对象实例的本地,对象方法,调用,转变为远程服务的,接口请求,。,Linux Process,Index.php,Photo.php(Proxy),192.168.1.1,Linux Process,Photo Services,Model,192.168.1.2,Remote Process Call,服务化的开发模式,采用服务化的开发模式改写之前的代码:,Index.php,setServer(192,.168.1.2,9000);,$rpc-,setTimeout,(2,1);$ret=$rpc-,call,(“photo.getList”,”);,?,服务化的开发模式,Services Layer,Application Layer,Photo.Service,Storage Layer,FileSystem,Mysql,Cache,MongoDB,Music.Service,Diary.Service,Index.php,Remote Process Call,服务化的开发模式,服务化的开发模式特点:,服务之间、服务与应用之间低耦合,独立进程、服务器环境,不在有被迫宿主问题,可以对单个接口进行精确超时控制,安全性高,服务的开放通过远程接口调用,而非共享源代码,DBA,可以对数据库访问来源进行准确限制,可维护性提升,由于独立服务环境,配置不再相互依赖,服务的代码更新部署简单,目录,前言,常规的开发模式,潜藏的问题,服务化的开发模式,解决方案,(,PHP FastRPC,、,PHP Services Proxy),小结,解决方案,在,Java,世界,大量的中间健扮演着类似的角色,在,.NET,企业级应用开发中,大量的服务通过基于,XML/HTTP,的,SOAP,通讯协议进行整合,在,Linux C/C+,中,服务通常采用一些私有的二进制协议,或者使用类似于,Google,的,protobuf,协议,在,PHP,语言领域,也有类似的解决方案:,XML RPC,、,SOAP,等,解决方案,介绍一个,PHP,领域轻量级的服务化架构解决方案:,FastRPC,&,Services Proxy,解决方案,什么是,FastRPC,fastRPC,是基于,FastCGI,通讯协议的,RPC,框架,它适用多人合作开发的高并发网站项目。,通过这个,RPC,框架,可以将,MVC,思想中的,Model,后置于,RPC Server,层转型为服务,以协议方式暴露,Model,的方法给前端的,View,、,Control,操作。,FastCGI,的,FPM,进程,与,FPM,进程内,PHP,程序通讯,Web Server,FPM Process,Services1.php,Services2.php,Services3.php,Storage,Web Server(C#),Web Server(JAVA),Web Server(PHP),FastCGI Prototal,解决方案,Services,端代码,解决方案,服务使用者 客户端代码,解决方案,什么是,Services Proxy,Services Proxy,是一套使用,NIO,模式开发的完整的服务资源输入、输出管控的解决方案(采用,C/C+,语言编写),解决方案,Services Proxy,架构概要,Services Proxy,Services Layer,Feed,Friends,User,Photo,Music,Diary,API Inbox,API Outbox,Control,Services Proxy,功能特点:,通讯协议,无状态,对外统一输出,Json-RPC,访问控制,对服务访问者进行身份、,IP,、权限等验证,通讯安全,提供签名,对称加密,数据安全,采用,OAuth,标准对接口、用户隐私进行保护,高并发性能,1W+/qps,服务接口的瓶颈在于服务业务自身的复杂程度,解决方案,案例:,盛大糖果社区、边锋社区、华友手机社区等项目都是基于上述技术体系架构而成,并且底层社区服务完全共用,而且涉及的技术人员范围之广,这些项目都已顺利上线或内测中,小结,当一些大型网站的架构遇到几十甚至上百名工程师、产品策划的时候,作为架构师不仅仅考虑的是系统的高可用、高性能、高可扩展,还必须思考多人协同效率、风险隔离、团队成员技术特点等等多方面的因素,是一个广度优先的系统性思考过程。,关于人员梯队建设,通过网站服务化架构后,经验丰富、的工程师负责,Services Layer,服务开发;刚刚步入,PHP,开发领域的工程师就可以先从,Application Layer,学起。,感谢!,PHP,的明天会更辉煌,做,PHPER,挺好!,演讲人:罗威尔,盛大在线平台技术部总监,lowellzhongQQ:799977,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服