資料介紹
軟件簡(jiǎn)介
php-nsq
php-nsq 是nsq的php客戶端,采用c擴(kuò)展編寫(xiě),性能和穩(wěn)定性。
安裝 :
請(qǐng)?zhí)崆鞍惭blibevent
Dependencies:?libevent??(apt-get?install?libevent-dev?,yum?install?libevent-devel) 1.?sudo?phpize 2.?./configure? 3.?make?? 4.?make?install?? add?in?your?php.ini: extension?=?nsq.so;
?pub例子:
$nsqdAddr?=?array( ????"127.0.0.1:4150", ????"127.0.0.1:4154" ); $nsq?=?new?Nsq(); $isTrue?=?$nsq->connectNsqd($nsqdAddr); for($i?=?0;?$i?10000;?$i++){ ????$nsq->publish("test",?"nihao"); } $nsq->closeNsqdConnection(); //?Deferred?publish? //function?:?deferredPublish(string?topic,string?message,?int?millisecond);? //millisecond?default?:?[0?connectNsqd($nsqdAddr); for($i?=?0;?$i?20;?$i++){ ????$deferred->deferredPublish("test",?"message?daly",?3000);? } $deferred->closeNsqdConnection();
?sub例子:
?"test", ????"channel"?=>?"struggle", ????"rdy"?=>?2,????????????????//optional?,?default?1 ????"connect_num"?=>?1,????????//optional?,?default?1??? ????"retry_delay_time"?=>?5000,??//optional,?default?0?,?if?run?callback?failed,?after?5000?msec,?message?will?be?retried ????"auto_finish"?=>?true,?//default?true ); $nsq->subscribe($nsq_lookupd,?$config,?function($msg,$bev){? ????echo?$msg->payload; ????echo?$msg->attempts; ????echo?$msg->message_id; ????echo?$msg->timestamp; });
Nsq 類方法:
-
connectNsqd($nsqdAddrArr)?
pub的時(shí)候連接nsq,你也可以利用此函數(shù)做健康檢查 -
closeNsqdConnection()?
關(guān)閉nsq的連接 -
publish($topic,$msg)?
消息發(fā)送 -
deferredPublish($topic,$msg,$msec)?
延遲消息發(fā)送 -
subscribe($nsq_lookupd,$config,$callback)?
消息訂閱
Message 類方法與屬性:
-
timestamp?
消息時(shí)間戳 -
attempts?
消息的重試次數(shù),(從1開(kāi)始) -
message_id?
消息id? -
payload?
消息內(nèi)容 -
finish($bev,$msg->message_id)?
主動(dòng)的 ack消息方法 -
touch($bev,$msg->message_id)?
如果你消息執(zhí)行太長(zhǎng),可以利用次函數(shù)告知nsq 你還活著,一般用于執(zhí)行頻率比較規(guī)律的場(chǎng)景。
Tips :
1.如果callback內(nèi)需要外部變量,可以采用以下use的寫(xiě)法:
$nsq->subscribe($nsq_lookupd,?$config,?function($msg,$bev)?use?($you_variable){?
????echo?$msg->payload;
????echo?$msg->attempts;
????echo?$msg->message_id;
????echo?$msg->timestamp;
});
?2.消息重試,只要拋異常就可以,切記不要陷入死循環(huán),超過(guò)自己覺(jué)得可以的次數(shù) 要return:
subscribe($nsq_lookupd,?$config,?function($msg){?
????try{
????????echo?$msg->payload?.?"?"?.?"attempts:".$msg->attempts."\n";
????????//do?something
????}catch(Exception?$e){
????????if($msg->attempts?3){
????????????//the?message?will?be?retried?after?you?configure?retry_delay_time?
????????????throw?new?Exception("");?
????????}else{
????????????echo?$e->getMessage();
????????????return;
????????}
????}
});
3.如果你想增加 客戶端的心跳時(shí)間與消息的超時(shí)時(shí)間 :
?第一步?在nsqd啟動(dòng)時(shí)要加入相關(guān)參數(shù),這個(gè)參數(shù)是最大的限制,比如--max-heartbeat-interval=1m30s?心跳時(shí)間最大不能超過(guò)1分30秒: ??????nsqd?--lookupd-tcp-address=127.0.0.1:4160?--max-heartbeat-interval=1m30s?--msg-timeout=10m30s 第二步??因?yàn)榈谝徊绞侵付ㄗ畲髸r(shí)間,所以還需要第二步在客戶端指定所需要的值?具體請(qǐng)看?example目錄中的identify開(kāi)頭的文件例子。
4.如果你想增強(qiáng)消費(fèi)能力,可以加大rdy參數(shù)
5.你可以用supervisor管理,但是因?yàn)槭嵌噙M(jìn)程消費(fèi),你需要在supervisor job的配置文件?添加:?
????stopasgroup=true ????killasgroup=true
Changes
-
3.0
-
修復(fù)因libevent 超過(guò)4096消息被截?cái)鄦?wèn)題
-
增加identify指令功能,可以增加客戶端心跳時(shí)間 與 消息超時(shí)時(shí)間
-
-
2.4.0
-
修復(fù) pub bug
-
修復(fù) sub coredump
-
修覆蓋 touch bug
-
增加等待,當(dāng)剛初始化的topic沒(méi)消息時(shí)
-
-
2.3.1
-
pub支持域名
-
修復(fù) pub coredump
-
- 開(kāi)源軟件-Ocara PHP框架
- PHP教程:foreach使用引用注意的問(wèn)題
- PHP學(xué)習(xí)教程分享 7次下載
- 如何使用PHP-X快速開(kāi)發(fā)一個(gè)PHP擴(kuò)展 8次下載
- 如何在Windows系統(tǒng)下安裝搭建PHP環(huán)境 13次下載
- 學(xué)習(xí)PHP需要注意那幾點(diǎn) 8次下載
- 如何使用PHP-X快速開(kāi)發(fā)一個(gè)PHP擴(kuò)展 9次下載
- PHP基礎(chǔ)知識(shí)的詳細(xì)資料總結(jié) 7次下載
- PHP的漏洞全部資料解析 6次下載
- 紫金橋軟件客戶端的啟動(dòng)參數(shù) 3次下載
- 基于PHP的 ArcMS地圖應(yīng)用開(kāi)發(fā)方法及案例 3次下載
- CoolpyCould客戶端 18次下載
- php程序?qū)嵗螺d
- PHP/MySQL教程 0次下載
- PHP完全自學(xué)手冊(cè)
- 如何構(gòu)建MCP客戶端 2.4k次閱讀
- 分享一款別樣的ssh客戶端-PortX 1.5k次閱讀
- phpy:PHP與Python互調(diào)用庫(kù) 1.9k次閱讀
- PHP中的生成器 1.5k次閱讀
- 基于LwIP的HTTP客戶端設(shè)計(jì) 5.8k次閱讀
- 基于LwIP的TCP客戶端設(shè)計(jì) 3.2k次閱讀
- 如何在Ubuntu 20.04安裝PHP 8.1并將其與Nginx集成 4.5k次閱讀
- SSH 客戶端各種特性和使用說(shuō)明 2.8k次閱讀
- php是什么語(yǔ)言編寫(xiě)的 5.5k次閱讀
- 一文知道PHP的優(yōu)點(diǎn)和缺點(diǎn) 7.6k次閱讀
- 為什么PHP的開(kāi)發(fā)效率比java高但是java比PHP流行 1.1w次閱讀
- php開(kāi)發(fā)中遇到的難點(diǎn)有哪些_十大php開(kāi)發(fā)常見(jiàn)問(wèn)題盤(pán)點(diǎn) 1.9w次閱讀
- php開(kāi)發(fā)環(huán)境的搭建和使用 3.9k次閱讀
- php實(shí)現(xiàn)定時(shí)器任務(wù)方法詳解 1.6k次閱讀
- PHP實(shí)現(xiàn)定時(shí)任務(wù)的幾種方法詳解 7.3k次閱讀
下載排行
本周
- 1新一代網(wǎng)絡(luò)可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費(fèi)
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數(shù)據(jù)手冊(cè)
- 2.33 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管S9012數(shù)據(jù)手冊(cè)
- 2.62 MB | 次下載 | 免費(fèi)
- 5LAT1218 如何選擇和設(shè)置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環(huán)繞擴(kuò)音機(jī) AVR-1507手冊(cè)
- 2.50 MB | 次下載 | 免費(fèi)
- 8MS1000TA 超聲波測(cè)量模擬前端芯片技術(shù)手冊(cè)
- 0.60 MB | 次下載 | 免費(fèi)
本月
- 1愛(ài)華AIWA HS-J202維修手冊(cè)
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊(cè)
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說(shuō)明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測(cè)距通信定位模塊規(guī)格書(shū)
- 838.47 KB | 5次下載 | 免費(fèi)
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準(zhǔn)諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協(xié)議電壓誘騙控制器IC技術(shù)手冊(cè)
- 1.81 MB | 1次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問(wèn)
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論