国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用Swoole加速Laravel(正式環(huán)境中)

vibiu / 849人閱讀

摘要:如需要支持熱啟動(dòng),請(qǐng)自行谷歌,大概原理就是用監(jiān)控文件變更,如果更新了重啟如果正式環(huán)境中還可以自己寫個(gè)部署腳本,后重啟服務(wù)等,方法很多不一一列舉。

1 Laravel的速度瓶頸在哪? 1.1 已有的一些優(yōu)化方法

1.1.1 laravel官方提供了一些優(yōu)化laravel的優(yōu)化方法

php artisan optimize
php artisan config:cache
php artisan route:cache

1.1.2 使用opcache加速,PHP是個(gè)解釋型語(yǔ)言執(zhí)行的時(shí)候先得把程序讀進(jìn)來(lái),由Zend引擎編譯成opcode。最后Zend虛擬機(jī)順次執(zhí)行這些opcode完成操作。opcache起到的作用就是緩存opcode,從而減少編譯的時(shí)間,減少CPU密集。


1.1.3 使用PHP7.1,不要問(wèn)我為什么

1.2 磁盤IO上的瓶頸

Laravel本身啟動(dòng)需要的文件就很多,外加其出了名的生態(tài)環(huán)境好,開(kāi)發(fā)中我們會(huì)很多很多現(xiàn)有的輪子,使得一次啟動(dòng)的磁盤IO特別高(就是要加載很多文件嘛),雖然官方的php artisan optimize方法優(yōu)化了文件的加載,但并沒(méi)有實(shí)際解決IO上的問(wèn)題。
知道了問(wèn)題那就很容易解決了,只要不要每次啟動(dòng)都重新加載就好了,下面輪到Swoole上場(chǎng)啦。


2 Swoole

Swoole是一個(gè)PHP擴(kuò)展,使得PHP使用異步的方式執(zhí)行,就像node一樣,而且還能使用socket,為PHP提供了一系列異步IO、事件驅(qū)動(dòng)、并行數(shù)據(jù)結(jié)構(gòu)功能。具體的安裝方法這就不說(shuō)了,自己谷歌吧。


3 現(xiàn)有的輪子

搜搜github上已有的swoole啟動(dòng)laravel的輪子,找了三個(gè)輪子

scil/LaravelFly
chongyi/swoole-laravel-framework
garveen/laravoole

用了LaravelFly,聽(tīng)名字感覺(jué)感覺(jué)挺酷,結(jié)果不如人意,實(shí)在不喜歡它那種強(qiáng)硬的啟動(dòng)方式。跟Laravel的風(fēng)格-"優(yōu)雅" 很不搭。于是又想自己寫,結(jié)果寫到一半發(fā)現(xiàn)laravoole這個(gè)項(xiàng)目有更新,然后啟動(dòng)方式(使用artisan命令,沒(méi)更新前是用的bash腳本啟動(dòng)),代碼風(fēng)格都很酷,這不就是我想做的東西嘛!


chongyi/swoole-laravel-framework這個(gè)輪子是我在寫輪子的時(shí)候,作者在微信群里分享的,有興趣的朋友可以試試,我還沒(méi)試過(guò)。


4 LARAVOOLE中的幾個(gè)注意點(diǎn)

可以看看作者的文檔,我就只總結(jié)下我在用的過(guò)程中遇到的幾個(gè)點(diǎn)
1 你應(yīng)該不再使用以下的超全局變量,因?yàn)樗鼈兪荳EB服務(wù)器創(chuàng)建的,而一個(gè)非熱啟動(dòng)的項(xiàng)目使用他們可能會(huì)造成變量污染,你可以從Laravel的Request類中拿到你要的數(shù)據(jù)。

$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION

2 因?yàn)槲乙_(kāi)發(fā)微信相關(guān)的,所以使用了EASYWECHAT這個(gè)包,但是這個(gè)包的oauth方法使用的是原生的SESSION,所以這邊也要改成redis等其它方式去存儲(chǔ)session。具體代碼如下。

 //在你的控制器或者中間件中
  public function handle(Request $request, Closure $next)
  //省略代碼
  $redirect = config("app.url") . $request->getRequestUri();//這個(gè)地址要求帶著token
                
  $options = [
                "app_id" => config("app.appid"),
                "secret" => config("app.secret"),
                "oauth" => [
                    "scopes" => ["snsapi_userinfo"],
                    "callback" => $redirect,
                ],
             ];

   $app = new Application($options);
   //使用laravel session替代原生session
   $app->oauth->setRequest($request);
   //省略下面代碼
  }

3 不支持熱啟動(dòng)了,所以每次更新代碼后都需要重新啟動(dòng)Laravoole進(jìn)程。

$ php artisan laravoole restart

如需要支持熱啟動(dòng),請(qǐng)自行谷歌 swoole + inotify,大概原理就是用inotify監(jiān)控文件變更,如果更新了重啟swoole,如果正式環(huán)境中還可以自己寫個(gè)部署腳本,git pull后重啟服務(wù)等,方法很多不一一列舉。

5 愉快的準(zhǔn)備測(cè)試?yán)?/b>

測(cè)試機(jī)子:
阿里云
centos6.5
雙核
4G
無(wú)視帶寬影響,向本機(jī)請(qǐng)求,測(cè)試結(jié)果如下,測(cè)了幾次,平均在700RPS左右。原先的只有20多RPS。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/22222.html

相關(guān)文章

  • 了解swoole運(yùn)行模式,加速laravel應(yīng)用

    摘要:負(fù)責(zé)解釋執(zhí)行文件生成響應(yīng),最終返回給,展現(xiàn)至前端。相比于傳統(tǒng)架構(gòu),進(jìn)程模型最大的特點(diǎn)在于其多線程模式處理網(wǎng)絡(luò)請(qǐng)求,使得其能輕松應(yīng)對(duì)大量連接。這要求開(kāi)發(fā)人員對(duì)于多進(jìn)程的運(yùn)行模式有更清晰的認(rèn)識(shí)更容易內(nèi)存泄露。 一、SwooleSwoole號(hào)稱重新定義了PHP,它是一個(gè)PHP擴(kuò)展,使得PHP可以使用異步的方式執(zhí)行,就像node一樣,而且還能使用socket,為PHP提供了一系列異步IO、事件...

    時(shí)飛 評(píng)論0 收藏0
  • 使用 Swoole 加速 Laravel

    摘要:因?yàn)闉閱蝹€(gè)請(qǐng)求創(chuàng)建的環(huán)境將在請(qǐng)求過(guò)程完成后立即銷毀。可以成為強(qiáng)大的性能增強(qiáng)器,提供了優(yōu)雅的結(jié)構(gòu)和代碼使用方式。你可以使用此命令快速安裝它,并訪問(wèn)官方網(wǎng)站獲取更多信息。注意目前僅支持和。服務(wù)器不能使用。基準(zhǔn)測(cè)試使用進(jìn)行干凈的測(cè)試。 Swoole 是針對(duì)PHP的生產(chǎn)級(jí)異步編程框架。它是一種用純C語(yǔ)言編寫的PHP擴(kuò)展,它使PHP開(kāi)發(fā)人員能夠在PHP中編寫高性能,可擴(kuò)展的并發(fā)TCP,UDP,U...

    didikee 評(píng)論0 收藏0
  • 使用 Swoole 來(lái)加速你的 Laravel 應(yīng)用

    摘要:是為開(kāi)發(fā)的生產(chǎn)級(jí)異步編程框架。因?yàn)閱蝹€(gè)請(qǐng)求創(chuàng)建的環(huán)境在請(qǐng)求執(zhí)行結(jié)束后會(huì)立即銷毀。可以提供強(qiáng)大性能而則可以提供優(yōu)雅代碼結(jié)構(gòu)使用。在使用這個(gè)包之前,請(qǐng)確保你的機(jī)器安裝了正確的。建立并運(yùn)行起來(lái)現(xiàn)在,你可以執(zhí)行以下的命令來(lái)啟動(dòng)服務(wù)。 showImg(https://segmentfault.com/img/bVbaF89?w=1240&h=634); Swoole?是為 PHP 開(kāi)發(fā)的生產(chǎn)級(jí)異...

    snifes 評(píng)論0 收藏0
  • PHP相關(guān)

    摘要:的機(jī)器學(xué)習(xí)庫(kù)的機(jī)器學(xué)習(xí)庫(kù),包括算法交叉驗(yàn)證神經(jīng)網(wǎng)絡(luò)等內(nèi)容。在即將到來(lái)的大會(huì)上,她將和大家分享在機(jī)器學(xué)習(xí)領(lǐng)域的全新可能。入門總結(jié)入門相關(guān),如安裝配置基本使用等。 基于 Swoole 開(kāi)發(fā) PHP 擴(kuò)展 Swoole-1.9.7 增加了一個(gè)新特性,可以基于 Swoole 使用 C++ 語(yǔ)言開(kāi)發(fā)擴(kuò)展模塊,在擴(kuò)展模塊中可以注冊(cè) PHP 內(nèi)置函數(shù)和類。現(xiàn)在可以基于 Swoole 來(lái)編寫 PHP ...

    lewinlee 評(píng)論0 收藏0
  • 使用swoole改造laravel應(yīng)用

    摘要:使用改造應(yīng)用標(biāo)簽空格分隔概述介紹是為開(kāi)發(fā)的生產(chǎn)級(jí)異步編程框架。然后你可以看到以下信息現(xiàn)在可以通過(guò)訪問(wèn)來(lái)進(jìn)入應(yīng)用。 使用swoole改造laravel應(yīng)用 標(biāo)簽(空格分隔): php 1. 概述 1.1 swoole介紹 Swoole 是為 PHP 開(kāi)發(fā)的生產(chǎn)級(jí)異步編程框架。 他是一個(gè)純 C 開(kāi)發(fā)的擴(kuò)展, 他允許 PHP 開(kāi)發(fā)者在 PHP 中寫 高性能,可擴(kuò)展的并發(fā) TCP, UDP,...

    cpupro 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<