摘要:的異步并行高性能網(wǎng)絡通信引擎已發(fā)布版本。此版本增加了多項新特性。復雜的線上項目使用模式,請求分配調(diào)度的效率更高。方便使用或類框架實現(xiàn)自己的調(diào)度器。
PHP的異步、并行、高性能網(wǎng)絡通信引擎 Swoole 已發(fā)布 1.10.0 版本。此版本增加了多項新特性。
自動 DNS 解析新版本的異步客戶端不再需要使用 swoole_async_dns_lookup 解析域名了,底層實現(xiàn)了自動域名解析。Client 在執(zhí)行 connect 方法時可直接傳入域名。
$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC); $client->on("connect", function(swoole_client $cli) { $cli->send("GET / HTTP/1.1 "); }); $client->on("receive", function(swoole_client $cli, $data){ echo "Receive: $data"; $cli->send(str_repeat("A", 100)." "); sleep(1); }); $client->on("error", function(swoole_client $cli){ echo "error "; }); $client->on("close", function(swoole_client $cli){ echo "Connection close "; }); //底層會自動進行異步域名解析 $client->connect("www.baidu.com", 9501);慢請求日志
新版本增加了追蹤慢請求功能,可記錄慢請求的 PHP 函數(shù)調(diào)用棧。
function test() { test_sleep(); } function test_sleep() { echo "sleep 5 "; sleep(5); } $server = new swoole_server("127.0.0.1", 9501); $server->set([ "worker_num" => 1, "task_worker_num" => 1, "trace_event_worker" => true, "request_slowlog_timeout" => 1, "request_slowlog_file" => "/tmp/trace.log", ]); $server->on("Receive", function($serv, $fd, $reactor_id, $data) { test(); $serv->send($fd, "Swoole: $data"); }); $server->start();
處理慢請求后,/tmp/trace.log日志中將打印一行錯誤信息:
[08-Jan-2018 15:21:57] [worker#0] pid 26905 [0x00007f60cda22340] sleep() /home/htf/workspace/swoole/examples/server/trace.php:10 [0x00007f60cda222e0] test_sleep() /home/htf/workspace/swoole/examples/server/trace.php:4 [0x00007f60cda22280] test() /home/htf/workspace/swoole/examples/server/trace.php:28 [0x00007f60cda22190] {closure}() /home/htf/workspace/swoole/examples/server/trace.php:42 [0x00007f60cda22140] start() /home/htf/workspace/swoole/examples/server/trace.php:42新增 STREAM 模塊
新增的 stream 模塊使得 Reactor、Worker、Task 進程之間的通信方式更靈活,最大程度地解耦。復雜的線上項目使用 stream 模式,請求分配調(diào)度的效率更高。
$serv = new swoole_server("127.0.0.1", 9501); $serv->set(array( "dispatch_mode" => 7, "worker_num" => 2, )); $serv->on("receive", function (swoole_server $serv, $fd, $threadId, $data) { var_dump($data); echo "#{$serv->worker_id}>> received length=" . strlen($data) . " "; }); $serv->start();
Reactor 和 Worker 之間通信,使用 dispatch_mode = 7 來開啟
Worker 和 Task 之間通信,使用 task_ipc_mode = 4 來開啟
增加 Event::cycle 函數(shù)用戶代碼可自定義一個 EventLoop 的鉤子函數(shù),此函數(shù)會在每一輪事件循環(huán)結(jié)束時調(diào)用。方便使用 Generator + Yield 或 Promise 類 Swoole 框架實現(xiàn)自己的調(diào)度器。
SwooleTimer::tick(2000, function ($id) { var_dump($id); }); SwooleEvent::cycle(function () { echo "hello [1] "; SwooleEvent::cycle(function () { echo "hello [2] "; SwooleEvent::cycle(null); }); });其他更新內(nèi)容
更新Table::incr和Table::decr支持有符號整型
兼容PHP-7.2版本
修復Event::del函數(shù)無法移除標準輸入句柄的問題
修復Task進程內(nèi)定時器間隔小于Client接收超時時間,引起Client::recv死鎖的問題
增加ssl_host_name配置項,用于驗證SSL/TLS主機合法性
使用dispatch_mode = 3時,當所有Worker為忙的狀態(tài)時打印一條錯誤日志
增加端口迭代器,可遍歷某個監(jiān)聽端口的所有連接
修復Table在非x86平臺存在的內(nèi)存對齊問題
修復BASE模式下max_request配置無效的問題
修復WebSocket服務器在某些客戶端ping幀帶有mask數(shù)據(jù)時回包錯誤的問題
修復HttpClient使用HEAD方法響應內(nèi)容攜帶Content-Length導致卡死的問題
增加MySQL異步客戶端對JSON格式的支持
下載地址GITHUB:https://github.com/swoole/swo...
開源中國:https://gitee.com/swoole/swoo...
PECL:https://pecl.php.net/package/...
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26294.html
摘要:修復添加超過萬個以上定時器時發(fā)生崩潰的問題增加模塊,下高性能序列化庫修復監(jiān)聽端口設置無效的問題等。線程來處理網(wǎng)絡事件輪詢,讀取數(shù)據(jù)。當?shù)娜挝帐殖晒α艘院?,由這個線程將連接成功的消息告訴進程,再由進程轉(zhuǎn)交給進程。此時進程觸發(fā)事件。 本文示例代碼詳見:https://github.com/52fhy/swoo...。 簡介 Swoole是一個PHP擴展,提供了PHP語言的異步多線程服務器...
摘要:年開發(fā)并發(fā)布框架現(xiàn)已停止維護。經(jīng)過一年實戰(zhàn),年月日,一周年之際正式發(fā)布版本。宇潤部分開源項目我已通過碼云平臺,向項目力所能及地捐款,聊表心意。所以,目前主打的還是單體應用開發(fā)。協(xié)議的開發(fā),也是帶來的一大優(yōu)勢。 imi 介紹 showImg(https://segmentfault.com/img/bVbuab9?w=291&h=187); imi 是基于 PHP 協(xié)程應用開發(fā)框架,它支...
摘要:開發(fā)負責人創(chuàng)建分支,編寫單元測試腳本,編寫代碼,實現(xiàn)提案中的所有內(nèi)容,最終發(fā)起交叉評審,檢查代碼,提出改進意見,反饋給開發(fā)負責人,繼續(xù)完善細節(jié)。 Swoole開源項目從2012年開始發(fā)布第一個版本,到現(xiàn)在已經(jīng)有近7年的歷史。在這七年的時間里: 提交了8821次代碼變更 發(fā)布了287個版本 收到并解決1161次issue反饋 合并了603次pull request 共有100位開發(fā)者...
摘要:項新特性個中等級別以上的修復篇文檔更新云幫社區(qū)版迎來年月更新檔。研發(fā)團隊在這一個月中新增了項新特性,修復了個中等級別以上的,并更新了篇維護文檔。本月版本發(fā)布支持支持,協(xié)議的性能分析,后續(xù)還會添加等協(xié)議的支持。 13 項新特性、18 個中等級別以上的bug修復、12篇文檔更新、云幫社區(qū)版 迎來2016年11月更新檔。 Cloudbang(云幫) 云幫是好雨科技研發(fā)的一款基于容器技術的應用...
閱讀 3491·2023-04-25 18:52
閱讀 2503·2021-11-22 15:31
閱讀 1263·2021-10-22 09:54
閱讀 3037·2021-09-29 09:42
閱讀 626·2021-09-26 09:55
閱讀 933·2021-09-13 10:28
閱讀 1130·2019-08-30 15:56
閱讀 2122·2019-08-30 15:55