汕头网站建设网站推广,wordpress 菜单 文章,仿糗事百科wordpress,酒类网站建设策划书PHP在金山游戏官方网站中的应用#xff1a; ①、PHP团队协作开发#xff1b; ②、PHP系统架构应用。
PHP在金山游戏运营系统 Keyes 中的应用#xff1a; ①、分层架构设计模型#xff1b; ②、通用性API接口设计
PHP在金山游戏官方网站中的应用
PHP团队协作开发环境 PHP…PHP在金山游戏官方网站中的应用 ①、PHP团队协作开发 ②、PHP系统架构应用。
PHP在金山游戏运营系统 Keyes 中的应用 ①、分层架构设计模型 ②、通用性API接口设计
PHP在金山游戏官方网站中的应用
PHP团队协作开发环境 PHP团队协作开发环境 ►设置“C:\WINDOWS\system32\drivers\etc\hosts”为本机IP 127.0.0.1 https://blog.csdn.net/weixin_43392489
在自己的电脑上修改完一个文件例如phpinfo.php即可马上用浏览器运行、调试
►本地调试没问题后再提交SVN
►提交到SVN后自动同步到Linux测试服务器供后续测试 ►在Windows上编写的PHP代码文件用Linux环境的PHP(FastCGI)来调试保证了开发环境、测试环境、生成环境的统一
►整个PHP开发环境、测试环境即保证了程序员的快速修改、调试代码需求又保证了整个代码都在SVN版本控制之中。
PHP代码的统一性保证
►“开发环境→线下测试环境→线上测试环境→线上正式环境”连接的MySQL、Memcached、接口IP、端口各不同程序员一头雾水经常改错配置文件或忘记修改如何解决
►谁最了解各种服务器环境的配置──系统工程师。
►那么为什么不分离
►解决方案自行开发“配置管理后台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代码的上线发布与回滚
►将上线发布的版本号例如2.1.46与SVN版本号例如r21909相对应建立拥有Web界面的《PHP代码发布系统》。
►代码的发布上线可由项目负责人工程师自行完成一般无需系统工程师的协助。
PHP代码发布系统 PHP与开源产品、C/C程序的结合 ►方式二利用fsocketopen()、file_get_contents()、cURL等函数通过HTTP协议与C/C开源程序进行通讯。例如与我们自行开发的开源简单消息队列软件HTTPSQS进行通讯。 PHP Web程序中的异步处理
►在PHP Web程序中发送手机短信、电子邮件、转换视频格式、记录日志、数据挖掘采集等都是比较耗时的操作。
►为了增强用户体验需要将这些操作转为异步执行
PHP Web程序中的短耗时异步处理
►前提使用NginxPHPphp-fpm FastCGI架构。
►PHP-FPM 提供了fastcgi_finish_reques()函数。
?php
echo 输出内容给用户;fastcgi_finish_request();
/* 用户访问完成不会等待下面的操作。*/sleep(5); //假设一个耗时的处理过程
file_put_contents(/tmp/logs.txt, 记录日志);
?PHP Web程序中的短耗时异步处理
►fastcgi_finish_reques()函数的缺点
►PHP FastCGI 进程数有限正在处理异步操作的php-cgi进程无法处理新请求
►如果并发访问量较大php-cgi进程数用满新访问请求将没有php-cgi去处理。Nginx服务器会出现
502 Bad Gateway。
PHP Web程序中的长耗时异步处理
►使用简单消息队列来解决长耗时异步处理 PHP在负载均衡架构中的约束 PHP在Web服务器负载均衡架构中的约束
►PHP Web程序不在Web服务器上生成html静态文件、PHP文件、缓存文件
►数据对象的缓存用APC、Memcached代替
►HTML输出网页的缓存用前端的Nginx负载均衡软件来实现
►优点①Web服务器上PHP文件能够通过代码发布系统统一管理增、删Web服务器非常快捷清除缓存能够由系统工程师去统一管理。
②不经过《代码发布系统》生成、修改的PHP文件Web服务器自动禁止执行做到防篡改、防挂马。
►如果需要记录Session会话在负载均衡服务器上做IP哈希或在PHP Web服务器上做Session共享必不可少。
PHP在金山游戏运营系统 Keyes 中的应用
界面、接口、支撑分层架构设计 ⑥⑦两个步骤表示KingEyes“管理界面”通过AJAX轮询请求“功能接口”获取返回信息。
运营指令修改经验倍数、踢人、发消息广播、启动游戏、停止游戏、更新游戏程序、更新配置文件、并服
步骤①②③④⑤⑥⑦
服务器监控CPU、磁盘、内存、进程数、系统负载、游戏服务端进程是否存在等
步骤⑤⑥⑦
游戏心跳检测Ping包检测确定游戏是否正常运行
步骤③④⑤⑥⑦
游戏在线人数查看游戏总在线人数、各地图在线人数
步骤③④⑤⑥⑦
一套程序兼容不同游戏的服务端架构
与游戏进程交互的初期接口设计方案 甲我从不坐大巴我要开自己的奥迪车过来不满意
乙奥拓车虽烂我仍然原意自己开车而不是坐大巴不满意
丙我喜欢骑摩托车过来不满意
丁有大巴车接太好了。满意
不满意
与游戏进程交互的正式接口设计方案 甲满意 乙满意 丙满意 丁满意 ►以游戏服务端程序的每一个进程为单位进行通讯