資料介紹
軟件簡介
php-nsq
php-nsq 是nsq的php客戶端,采用c擴(kuò)展編寫,性能和穩(wěn)定性。
安裝 :
請?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的時候連接nsq,你也可以利用此函數(shù)做健康檢查 -
closeNsqdConnection()
?
關(guān)閉nsq的連接 -
publish($topic,$msg)
?
消息發(fā)送 -
deferredPublish($topic,$msg,$msec)
?
延遲消息發(fā)送 -
subscribe($nsq_lookupd,$config,$callback)
?
消息訂閱
Message 類方法與屬性:
-
timestamp
?
消息時間戳 -
attempts
?
消息的重試次數(shù),(從1開始) -
message_id
?
消息id? -
payload
?
消息內(nèi)容 -
finish($bev,$msg->message_id)
?
主動的 ack消息方法 -
touch($bev,$msg->message_id)
?
如果你消息執(zhí)行太長,可以利用次函數(shù)告知nsq 你還活著,一般用于執(zhí)行頻率比較規(guī)律的場景。
Tips :
1.如果callback內(nèi)需要外部變量,可以采用以下use的寫法:
$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),超過自己覺得可以的次數(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.如果你想增加 客戶端的心跳時間與消息的超時時間 :
?第一步?在nsqd啟動時要加入相關(guān)參數(shù),這個參數(shù)是最大的限制,比如--max-heartbeat-interval=1m30s?心跳時間最大不能超過1分30秒: ??????nsqd?--lookupd-tcp-address=127.0.0.1:4160?--max-heartbeat-interval=1m30s?--msg-timeout=10m30s 第二步??因?yàn)榈谝徊绞侵付ㄗ畲髸r間,所以還需要第二步在客戶端指定所需要的值?具體請看?example目錄中的identify開頭的文件例子。
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 超過4096消息被截斷問題
-
增加identify指令功能,可以增加客戶端心跳時間 與 消息超時時間
-
-
2.4.0
-
修復(fù) pub bug
-
修復(fù) sub coredump
-
修覆蓋 touch bug
-
增加等待,當(dāng)剛初始化的topic沒消息時
-
-
2.3.1
-
pub支持域名
-
修復(fù) pub coredump
-
- 開源軟件-Ocara PHP框架
- PHP教程:foreach使用引用注意的問題
- PHP學(xué)習(xí)教程分享 7次下載
- 如何使用PHP-X快速開發(fā)一個PHP擴(kuò)展 8次下載
- 如何在Windows系統(tǒng)下安裝搭建PHP環(huán)境 13次下載
- 學(xué)習(xí)PHP需要注意那幾點(diǎn) 8次下載
- 如何使用PHP-X快速開發(fā)一個PHP擴(kuò)展 9次下載
- PHP基礎(chǔ)知識的詳細(xì)資料總結(jié) 7次下載
- PHP的漏洞全部資料解析 6次下載
- 紫金橋軟件客戶端的啟動參數(shù) 3次下載
- 基于PHP的 ArcMS地圖應(yīng)用開發(fā)方法及案例 3次下載
- CoolpyCould客戶端 18次下載
- php程序?qū)嵗螺d
- PHP/MySQL教程 0次下載
- PHP完全自學(xué)手冊
- 適用于Linux的基于Rust的同步客戶端介紹 449次閱讀
- 分享一款別樣的ssh客戶端-PortX 448次閱讀
- phpy:PHP與Python互調(diào)用庫 827次閱讀
- PHP中的生成器 732次閱讀
- 基于LwIP的HTTP客戶端設(shè)計(jì) 2473次閱讀
- 基于LwIP的TCP客戶端設(shè)計(jì) 2111次閱讀
- 如何在Ubuntu 20.04安裝PHP 8.1并將其與Nginx集成 3148次閱讀
- SSH 客戶端各種特性和使用說明 1430次閱讀
- php是什么語言編寫的 4855次閱讀
- 一文知道PHP的優(yōu)點(diǎn)和缺點(diǎn) 6713次閱讀
- 為什么PHP的開發(fā)效率比java高但是java比PHP流行 1w次閱讀
- php開發(fā)中遇到的難點(diǎn)有哪些_十大php開發(fā)常見問題盤點(diǎn) 1.8w次閱讀
- php開發(fā)環(huán)境的搭建和使用 3330次閱讀
- php實(shí)現(xiàn)定時器任務(wù)方法詳解 1341次閱讀
- PHP實(shí)現(xiàn)定時任務(wù)的幾種方法詳解 7111次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多