資料介紹
軟件簡(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è)
- 適用于Linux的基于Rust的同步客戶端介紹 449次閱讀
- 分享一款別樣的ssh客戶端-PortX 448次閱讀
- phpy:PHP與Python互調(diào)用庫(kù) 827次閱讀
- PHP中的生成器 732次閱讀
- 基于LwIP的HTTP客戶端設(shè)計(jì) 2473次閱讀
- 基于LwIP的TCP客戶端設(shè)計(jì) 2111次閱讀
- 如何在Ubuntu 20.04安裝PHP 8.1并將其與Nginx集成 3148次閱讀
- SSH 客戶端各種特性和使用說(shuō)明 1430次閱讀
- php是什么語(yǔ)言編寫(xiě)的 4855次閱讀
- 一文知道PHP的優(yōu)點(diǎn)和缺點(diǎn) 6713次閱讀
- 為什么PHP的開(kāi)發(fā)效率比java高但是java比PHP流行 1w次閱讀
- php開(kāi)發(fā)中遇到的難點(diǎn)有哪些_十大php開(kāi)發(fā)常見(jiàn)問(wèn)題盤點(diǎn) 1.8w次閱讀
- php開(kāi)發(fā)環(huán)境的搭建和使用 3330次閱讀
- php實(shí)現(xiàn)定時(shí)器任務(wù)方法詳解 1341次閱讀
- PHP實(shí)現(xiàn)定時(shí)任務(wù)的幾種方法詳解 7111次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 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開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 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é)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多