日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

PHP在金山游戏运营中的应用

發(fā)布時(shí)間:2023/12/10 php 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP在金山游戏运营中的应用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

PHP在金山游戲官方網(wǎng)站中的應(yīng)用:

?? ①、PHP團(tuán)隊(duì)協(xié)作開發(fā);

?? ②、PHP系統(tǒng)架構(gòu)應(yīng)用。

PHP在金山游戲運(yùn)營(yíng)系統(tǒng) Keyes 中的應(yīng)用:

?? ①、分層架構(gòu)設(shè)計(jì)模型;

?? ②、通用性API接口設(shè)計(jì)

PHP在金山游戲官方網(wǎng)站中的應(yīng)用

PHP團(tuán)隊(duì)協(xié)作開發(fā)環(huán)境

PHP團(tuán)隊(duì)協(xié)作開發(fā)環(huán)境

?設(shè)置“C:\WINDOWS\system32\drivers\etc\hosts”為本機(jī)IP:

??? 127.0.0.1???https://blog.csdn.net/weixin_43392489

在自己的電腦上,修改完一個(gè)文件(例如:phpinfo.php),即可馬上用瀏覽器運(yùn)行、調(diào)試;

?本地調(diào)試沒問題后,再提交SVN;

?提交到SVN后,自動(dòng)同步到Linux測(cè)試服務(wù)器,供后續(xù)測(cè)試

?在Windows上編寫的PHP代碼文件,用Linux環(huán)境的PHP(FastCGI)來調(diào)試,保證了開發(fā)環(huán)境、測(cè)試環(huán)境、生成環(huán)境的統(tǒng)一;

?整個(gè)PHP開發(fā)環(huán)境、測(cè)試環(huán)境,即保證了程序員的快速修改、調(diào)試代碼需求,又保證了整個(gè)代碼都在SVN版本控制之中。

PHP代碼的統(tǒng)一性保證

?開發(fā)環(huán)境→線下測(cè)試環(huán)境→線上測(cè)試環(huán)境→線上正式環(huán)境,連接的MySQL、Memcached、接口IP、端口各不同,程序員一頭霧水,經(jīng)常改錯(cuò)配置文件或忘記修改,如何解決?

?誰最了解各種服務(wù)器環(huán)境的配置?──系統(tǒng)工程師。

?那么,為什么不分離?

?解決方案:自行開發(fā)“配置管理后臺(tái)+PHP擴(kuò)展”,通過實(shí)現(xiàn)一個(gè)函數(shù)kae_config(),在不同的服務(wù)器環(huán)境,可以獲取到不同的配置信息,保證PHP配置文件不用因環(huán)境不同而修改。

<?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代碼的上線發(fā)布與回滾

?將上線發(fā)布的版本號(hào)(例如:2.1.46),與SVN版本號(hào)(例如:r21909)相對(duì)應(yīng),建立擁有Web界面的《PHP代碼發(fā)布系統(tǒng)》。

?代碼的發(fā)布上線,可由項(xiàng)目負(fù)責(zé)人(工程師)自行完成,一般無需系統(tǒng)工程師的協(xié)助。

PHP代碼發(fā)布系統(tǒng)

PHP與開源產(chǎn)品、C/C++程序的結(jié)合

?方式二:利用fsocketopen()、file_get_contents()、cURL等函數(shù),通過HTTP協(xié)議與C/C++開源程序進(jìn)行通訊。(例如,與我們自行開發(fā)的開源簡(jiǎn)單消息隊(duì)列軟件:HTTPSQS進(jìn)行通訊。)

PHP Web程序中的異步處理

?在PHP Web程序中,發(fā)送手機(jī)短信、電子郵件、轉(zhuǎn)換視頻格式、記錄日志、數(shù)據(jù)挖掘采集等,都是比較耗時(shí)的操作。

?為了增強(qiáng)用戶體驗(yàn),需要將這些操作轉(zhuǎn)為異步執(zhí)行

PHP Web程序中的短耗時(shí)異步處理

?前提:使用Nginx+PHP(php-fpm FastCGI)架構(gòu)。

?PHP-FPM 提供了fastcgi_finish_reques()函數(shù)。

<?php echo '輸出內(nèi)容給用戶';fastcgi_finish_request(); /* 用戶訪問完成,不會(huì)等待下面的操作。*/sleep(5); //假設(shè)一個(gè)耗時(shí)的處理過程 file_put_contents('/tmp/logs.txt', '記錄日志'); ?>

PHP Web程序中的短耗時(shí)異步處理

?fastcgi_finish_reques()函數(shù)的缺點(diǎn):

?PHP FastCGI 進(jìn)程數(shù)有限,正在處理異步操作的php-cgi進(jìn)程,無法處理新請(qǐng)求;

?如果并發(fā)訪問量較大,php-cgi進(jìn)程數(shù)用滿,新訪問請(qǐng)求,將沒有php-cgi去處理。Nginx服務(wù)器會(huì)出現(xiàn):

502 Bad Gateway。

PHP Web程序中的長(zhǎng)耗時(shí)異步處理

?使用簡(jiǎn)單消息隊(duì)列,來解決長(zhǎng)耗時(shí)異步處理:

PHP在負(fù)載均衡架構(gòu)中的約束

PHP在Web服務(wù)器負(fù)載均衡架構(gòu)中的約束

?PHP Web程序,不在Web服務(wù)器上生成html靜態(tài)文件、PHP文件、緩存文件;

?數(shù)據(jù)對(duì)象的緩存,用APC、Memcached代替;

?HTML輸出網(wǎng)頁的緩存,用前端的Nginx負(fù)載均衡軟件,來實(shí)現(xiàn);

?優(yōu)點(diǎn):①Web服務(wù)器上,PHP文件能夠通過代碼發(fā)布系統(tǒng)統(tǒng)一管理,增、刪Web服務(wù)器,非??旖?#xff1b;清除緩存,能夠由系統(tǒng)工程師去統(tǒng)一管理。

不經(jīng)過《代碼發(fā)布系統(tǒng)》生成、修改的PHP文件,Web服務(wù)器自動(dòng)禁止執(zhí)行,做到防篡改、防掛馬

?如果需要記錄Session會(huì)話,在負(fù)載均衡服務(wù)器上做IP哈希,或在PHP Web服務(wù)器上做Session共享,必不可少。

PHP在金山游戲運(yùn)營(yíng)系統(tǒng) Keyes 中的應(yīng)用

界面、接口、支撐,分層架構(gòu)設(shè)計(jì)

⑥⑦兩個(gè)步驟表示KingEyes“管理界面”通過AJAX輪詢請(qǐng)求“功能接口”獲取返回信息。

運(yùn)營(yíng)指令(修改經(jīng)驗(yàn)倍數(shù)、踢人、發(fā)消息廣播、啟動(dòng)游戲、停止游戲、更新游戲程序、更新配置文件、并服)

步驟:①②③④⑤⑥⑦

服務(wù)器監(jiān)控(CPU、磁盤、內(nèi)存、進(jìn)程數(shù)、系統(tǒng)負(fù)載、游戲服務(wù)端進(jìn)程是否存在等)

步驟:⑤⑥⑦

游戲心跳檢測(cè)(Ping包檢測(cè),確定游戲是否正常運(yùn)行)

步驟:③④⑤⑥⑦

游戲在線人數(shù)(查看游戲總在線人數(shù)、各地圖在線人數(shù))

步驟:③④⑤⑥⑦

一套程序兼容不同游戲的服務(wù)端架構(gòu)

與游戲進(jìn)程交互的初期接口設(shè)計(jì)方案

甲:我從不坐大巴,我要開自己的奧迪車過來(不滿意)

乙:奧拓車雖爛,我仍然原意自己開車,而不是坐大巴(不滿意)

丙:我喜歡騎摩托車過來(不滿意)

丁:有大巴車接?太好了。(滿意)

(不滿意)

與游戲進(jìn)程交互的正式接口設(shè)計(jì)方案

(滿意)

(滿意)

(滿意)

(滿意)

?以游戲服務(wù)端程序的每一個(gè)進(jìn)程為單位,進(jìn)行通訊

總結(jié)

以上是生活随笔為你收集整理的PHP在金山游戏运营中的应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。