




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PHP在金山游戏运营中的应用张宴30分钟PHP在金山游戏运营中的应用张宴30分钟1议题PHP在金山游戏运营中的应用议题PHP在金山游戏运营中的应用2PHP在金山游戏运营中的应用PHP在金山游戏运营中的应用3PHP团队协作开发环境►团队协作,多人同时开发一个PHP项目时,开发环境、测试环境,如何即满足每位程序员的快速调试需求,又做到版本控制?PHP在金山游戏运营中的应用PHP团队协作开发环境►团队协作,多人同时开发一个PHP项目4PHP团队协作开发环境PHP在金山游戏运营中的应用PHP团队协作开发环境PHP在金山游戏运营中的应用5PHP团队协作开发环境PHP在金山游戏运营中的应用开发了协作开发环境配置工具:XDevelopPHP团队协作开发环境PHP在金山游戏运营中的应用开发了协作6PHP团队协作开发环境►在自己的电脑上,修改完一个文件(例如:phpinfo.php),即可马上用浏览器运行、调试;PHP在金山游戏运营中的应用►设置“C:\WINDOWS\system32\drivers\etc\hosts”为本机IP:
►本地调试没问题后,再提交SVN;►提交到SVN后,自动同步到Linux测试服务器,供后续测试。PHP团队协作开发环境►在自己的电脑上,修改完一个文件(例如7PHP团队协作开发环境PHP在金山游戏运营中的应用►在Windows上编写的PHP代码文件,用Linux环境的PHP(FastCGI)来调试,保证了开发环境、测试环境、生成环境的统一;►整个PHP开发环境、测试环境,即保证了程序员的快速修改、调试代码需求,又保证了整个代码都在SVN版本控制之中。PHP团队协作开发环境PHP在金山游戏运营中的应用►在Win8PHP代码的统一性保证PHP在金山游戏运营中的应用►“开发环境→线下测试环境→线上测试环境→线上正式环境”,连接的MySQL、Memcached、接口IP、端口各不同,程序员一头雾水,经常改错配置文件或忘记修改,如何解决?►谁最了解各种服务器环境的配置?──系统工程师。►那么,为什么不分离?PHP代码的统一性保证PHP在金山游戏运营中的应用►“开发环9PHP代码的统一性保证PHP在金山游戏运营中的应用►解决方案:自行开发“配置管理后台+PHP扩展”,通过实现一个函数kae_config(),在不同的服务器环境,可以获取到不同的配置信息,保证PHP配置文件不用因环境不同而修改。<?php$mysql_name_master=kae_config("name","mysql","master");//主库$mysql_name_slave=kae_config("name","mysql","slave");//从库$config['db']=array('master'=>array('host'=>mysql_name_master['host'].":".$mysql_name_master['port'],'username'=>$mysql_name_master['user'],'password'=>$mysql_name_master['pass'],),'slave'=>array('host'=>$mysql_name_slave['host'].":".$mysql_name_slave['port'],'username'=>$mysql_name_slave['user'],'password'=>$mysql_name_slave['pass'],),);?>PHP代码的统一性保证PHP在金山游戏运营中的应用►解决方案10PHP代码的上线发布与回滚PHP在金山游戏运营中的应用►将上线发布的版本号(例如:2.1.46),与SVN版本号(例如:r21909)相对应,建立拥有Web界面的《PHP代码发布系统》。►代码的发布上线,可由项目负责人(工程师)自行完成,一般无需系统工程师的协助。PHP代码的上线发布与回滚PHP在金山游戏运营中的应用►将上11PHP代码发布系统PHP在金山游戏运营中的应用PHP代码发布系统PHP在金山游戏运营中的应用12PHP代码发布系统PHP在金山游戏运营中的应用PHP代码发布系统PHP在金山游戏运营中的应用13PHP与开源产品、C/C++程序的结合PHP在金山游戏运营中的应用►方式一:利用PHP客户端扩展,通过TCP协议与C/C++开源程序进行通讯(例如,与Sphinx搜索、分布式图片处理系统、TT、Memcached通讯);PHP与开源产品、C/C++程序的结合PHP在金山游戏运营中14PHP与开源产品、C/C++程序的结合PHP在金山游戏运营中的应用►方式二:利用fsocketopen()、file_get_contents()、cURL等函数,通过HTTP协议与C/C++开源程序进行通讯。(例如,与我们自行开发的开源简单消息队列软件:HTTPSQS【/p/httpsqs】进行通讯。)PHP与开源产品、C/C++程序的结合PHP在金山游戏运营中15PHPWeb程序中的异步处理PHP在金山游戏运营中的应用►在PHPWeb程序中,发送手机短信、电子邮件、转换视频格式、记录日志、数据挖掘采集等,都是比较耗时的操作。►为了增强用户体验,需要将这些操作转为异步执行。PHPWeb程序中的异步处理PHP在金山游戏运营中的应用►16PHPWeb程序中的短耗时异步处理PHP在金山游戏运营中的应用►前提:使用Nginx+PHP(php-fpmFastCGI)架构。►PHP-FPM提供了fastcgi_finish_reques()函数。<?phpecho'输出内容给用户';fastcgi_finish_request();/*用户访问完成,不会等待下面的操作。*/sleep(5);//假设一个耗时的处理过程file_put_contents('/tmp/logs.txt','记录日志');?>PHPWeb程序中的短耗时异步处理PHP在金山游戏运营中的17PHPWeb程序中的短耗时异步处理PHP在金山游戏运营中的应用►fastcgi_finish_reques()函数的缺点:►PHPFastCGI进程数有限,正在处理异步操作的php-cgi进程,无法处理新请求;►如果并发访问量较大,php-cgi进程数用满,新访问请求,将没有php-cgi去处理。Nginx服务器会出现:502BadGateway。PHPWeb程序中的短耗时异步处理PHP在金山游戏运营中的18PHPWeb程序中的长耗时异步处理PHP在金山游戏运营中的应用►使用简单消息队列,来解决长耗时异步处理:PHPWeb程序中的长耗时异步处理PHP在金山游戏运营中的19PHP在负载均衡架构中的约束PHP在金山游戏运营中的应用PHP在负载均衡架构中的约束PHP在金山游戏运营中的应用20PHP在Web服务器负载均衡架构中的约束PHP在金山游戏运营中的应用►数据对象的缓存,用APC、Memcached代替;►PHPWeb程序,不在Web服务器上生成html静态文件、PHP文件、缓存文件;►HTML输出网页的缓存,用前端的Nginx负载均衡软件,来实现;►优点:①Web服务器上,PHP文件能够通过代码发布系统统一管理,增、删Web服务器,非常快捷;清除缓存,能够由系统工程师去统一管理。②不经过《代码发布系统》生成、修改的PHP文件,Web服务器自动禁止执行,做到防篡改、防挂马。PHP在Web服务器负载均衡架构中的约束PHP在金山游戏运营21PHP在Web服务器负载均衡架构中的约束PHP在金山游戏运营中的应用►如果需要记录Session会话,在负载均衡服务器上做IP哈希,或在PHPWeb服务器上做Session共享,必不可少。PHP在Web服务器负载均衡架构中的约束PHP在金山游戏运营22PHP在金山游戏运营系统Keyes中的应用PHP在金山游戏运营中的应用PHP在金山游戏运营系统Keyes中的应用PHP在金山游23界面、接口、支撑,分层架构设计PHP在金山游戏运营中的应用PHP、C程序的交互界面、接口、支撑,分层架构设计PHP在金山游戏运营中的应用P24PHP在金山游戏运营中的应用数据交互设计运营指令(修改经验倍数、踢人、发消息广播、启动游戏、停止游戏、更新游戏程序、更新配置文件、并服)步骤:①②③④⑤⑥⑦服务器监控(CPU、磁盘、内存、进程数、系统负载、游戏服务端进程是否存在等)步骤:⑤⑥⑦游戏心跳检测(Ping包检测,确定游戏是否正常运行)步骤:③④⑤⑥⑦游戏在线人数(查看游戏总在线人数、各地图在线人数)步骤:③④⑤⑥⑦⑥⑦两个步骤表示KingEyes“管理界面”通过AJAX轮询请求“功能接口”获取返回信息。PHP在金山游戏运营中的应用数据交互设计运营指令(修改经验倍25一套程序兼容不同游戏的服务端架构PHP在金山游戏运营中的应用派大巴车来接啦!KE游戏运营平台与游戏进程交互的初期接口设计方案一套程序兼容不同游戏的服务端架构PHP在金山游戏运营中的应用26一套程序兼容不同游戏的服务端架构与游戏进程交互的正式接口设计方案KE游戏运营平台丁丙乙甲接口犹如道路。不限制交通工具,但需要受交通规则的约束。(满意)(满意)(满意)(满意)一套程序兼容不同游戏的服务端架构与游戏进程交互的正式接口设计27一套程序兼容不同游戏的服务端架构PHP在金山游戏运营中的应用►以游戏服务端程序的每一个进程为单位,进行通讯。一套程序兼容不同游戏的服务端架构PHP在金山游戏运营中的应用28PHP技术高峰论坛演讲课件29演讲完毕,谢谢观看!演讲完毕,谢谢观看!30PHP在金山游戏运营中的应用张宴30分钟PHP在金山游戏运营中的应用张宴30分钟31议题PHP在金山游戏运营中的应用议题PHP在金山游戏运营中的应用32PHP在金山游戏运营中的应用PHP在金山游戏运营中的应用33PHP团队协作开发环境►团队协作,多人同时开发一个PHP项目时,开发环境、测试环境,如何即满足每位程序员的快速调试需求,又做到版本控制?PHP在金山游戏运营中的应用PHP团队协作开发环境►团队协作,多人同时开发一个PHP项目34PHP团队协作开发环境PHP在金山游戏运营中的应用PHP团队协作开发环境PHP在金山游戏运营中的应用35PHP团队协作开发环境PHP在金山游戏运营中的应用开发了协作开发环境配置工具:XDevelopPHP团队协作开发环境PHP在金山游戏运营中的应用开发了协作36PHP团队协作开发环境►在自己的电脑上,修改完一个文件(例如:phpinfo.php),即可马上用浏览器运行、调试;PHP在金山游戏运营中的应用►设置“C:\WINDOWS\system32\drivers\etc\hosts”为本机IP:
►本地调试没问题后,再提交SVN;►提交到SVN后,自动同步到Linux测试服务器,供后续测试。PHP团队协作开发环境►在自己的电脑上,修改完一个文件(例如37PHP团队协作开发环境PHP在金山游戏运营中的应用►在Windows上编写的PHP代码文件,用Linux环境的PHP(FastCGI)来调试,保证了开发环境、测试环境、生成环境的统一;►整个PHP开发环境、测试环境,即保证了程序员的快速修改、调试代码需求,又保证了整个代码都在SVN版本控制之中。PHP团队协作开发环境PHP在金山游戏运营中的应用►在Win38PHP代码的统一性保证PHP在金山游戏运营中的应用►“开发环境→线下测试环境→线上测试环境→线上正式环境”,连接的MySQL、Memcached、接口IP、端口各不同,程序员一头雾水,经常改错配置文件或忘记修改,如何解决?►谁最了解各种服务器环境的配置?──系统工程师。►那么,为什么不分离?PHP代码的统一性保证PHP在金山游戏运营中的应用►“开发环39PHP代码的统一性保证PHP在金山游戏运营中的应用►解决方案:自行开发“配置管理后台+PHP扩展”,通过实现一个函数kae_config(),在不同的服务器环境,可以获取到不同的配置信息,保证PHP配置文件不用因环境不同而修改。<?php$mysql_name_master=kae_config("name","mysql","master");//主库$mysql_name_slave=kae_config("name","mysql","slave");//从库$config['db']=array('master'=>array('host'=>mysql_name_master['host'].":".$mysql_name_master['port'],'username'=>$mysql_name_master['user'],'password'=>$mysql_name_master['pass'],),'slave'=>array('host'=>$mysql_name_slave['host'].":".$mysql_name_slave['port'],'username'=>$mysql_name_slave['user'],'password'=>$mysql_name_slave['pass'],),);?>PHP代码的统一性保证PHP在金山游戏运营中的应用►解决方案40PHP代码的上线发布与回滚PHP在金山游戏运营中的应用►将上线发布的版本号(例如:2.1.46),与SVN版本号(例如:r21909)相对应,建立拥有Web界面的《PHP代码发布系统》。►代码的发布上线,可由项目负责人(工程师)自行完成,一般无需系统工程师的协助。PHP代码的上线发布与回滚PHP在金山游戏运营中的应用►将上41PHP代码发布系统PHP在金山游戏运营中的应用PHP代码发布系统PHP在金山游戏运营中的应用42PHP代码发布系统PHP在金山游戏运营中的应用PHP代码发布系统PHP在金山游戏运营中的应用43PHP与开源产品、C/C++程序的结合PHP在金山游戏运营中的应用►方式一:利用PHP客户端扩展,通过TCP协议与C/C++开源程序进行通讯(例如,与Sphinx搜索、分布式图片处理系统、TT、Memcached通讯);PHP与开源产品、C/C++程序的结合PHP在金山游戏运营中44PHP与开源产品、C/C++程序的结合PHP在金山游戏运营中的应用►方式二:利用fsocketopen()、file_get_contents()、cURL等函数,通过HTTP协议与C/C++开源程序进行通讯。(例如,与我们自行开发的开源简单消息队列软件:HTTPSQS【/p/httpsqs】进行通讯。)PHP与开源产品、C/C++程序的结合PHP在金山游戏运营中45PHPWeb程序中的异步处理PHP在金山游戏运营中的应用►在PHPWeb程序中,发送手机短信、电子邮件、转换视频格式、记录日志、数据挖掘采集等,都是比较耗时的操作。►为了增强用户体验,需要将这些操作转为异步执行。PHPWeb程序中的异步处理PHP在金山游戏运营中的应用►46PHPWeb程序中的短耗时异步处理PHP在金山游戏运营中的应用►前提:使用Nginx+PHP(php-fpmFastCGI)架构。►PHP-FPM提供了fastcgi_finish_reques()函数。<?phpecho'输出内容给用户';fastcgi_finish_request();/*用户访问完成,不会等待下面的操作。*/sleep(5);//假设一个耗时的处理过程file_put_contents('/tmp/logs.txt','记录日志');?>PHPWeb程序中的短耗时异步处理PHP在金山游戏运营中的47PHPWeb程序中的短耗时异步处理PHP在金山游戏运营中的应用►fastcgi_finish_reques()函数的缺点:►PHPFastCGI进程数有限,正在处理异步操作的php-cgi进程,无法处理新请求;►如果并发访问量较大,php-cgi进程数用满,新访问请求,将没有php-cgi去处理。Nginx服务器会出现:502BadGateway。PHPWeb程序中的短耗时异步处理PHP在金山游戏运营中的48PHPWeb程序中的长耗时异步处理PHP在金山游戏运营中的应用►使用简单消息队列,来解决长耗时异步处理:PHPWeb程序中的长耗时异步处理PHP在金山游戏运营中的49PHP在负载均衡架构中的约束PHP在金山游戏运营中的应用PHP在负载均衡架构中的约束PHP在金山游戏运营中的应用50PHP在Web服务器负载均衡架构中的约束PHP在金山游戏运营中的应用►数据对象的缓存,用APC、Memcached代替;►PHPWeb程序,不在Web服务器上生成html静态文件、PHP文件、缓存文件;►HTML输出网页的缓存,用前端的Nginx负载均衡软件,来实现;►优点:①Web服务器上,PHP文件能够通过代码发布系统统一管理,增、删Web服务器,非常快捷;清除缓存,能够由系统工程师去统一管理。②不经过《代码发布系统》生成、修改的PHP文件,Web服务器自动禁止执行,做到防篡改、防挂马。PHP在Web服务器负载均衡架构中的约束PHP在金山游戏运营51PHP在Web服务器负载均衡架构中的约束PHP在金山游戏运营中的应用►
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新入职员工消防知识培训课件
- 勿沉迷网络课件
- 净化灯具知识培训总结
- 中考政治高频考点速记与答题模版
- 茶艺师初级理论考试真题解析
- 财税筹划与税务风险控制策略
- 剖宫产课件问题
- 剖宫产相关课件
- 快消品销售数据月度分析报告
- 隧道施工质量安全检查标准
- 2024新科普版英语七年级上单词默写表
- 金融行业高质量发展专题研究报告
- 2024年首届全国“红旗杯”班组长大赛考试题库(单选、多选、判断题)
- 知识题库-人社练兵比武竞赛测试题及答案(五)
- 多功能报告厅设计
- 五年级上册科学青岛版全册教案
- 出入境证件承诺书
- 合理膳食 均衡营养课件
- 医院科教科主任竞聘演讲稿课件
- 《公路桥涵养护规范》(5120-2021)【可编辑】
- 医院科研诚信管理办法范例
评论
0/150
提交评论