国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

【已解決】workerman5.0的fiber協(xié)程,即http協(xié)程客戶端在自定義進(jìn)程中使用會提高性能嗎

xiaopi

問題描述

現(xiàn)有的主項(xiàng)目是laravel開發(fā)的項(xiàng)目,采用分布式部署,會根據(jù)不同的事件,將不同的數(shù)據(jù)回調(diào)給不同的第三方url,并發(fā)很大,大概一天要回調(diào)幾百萬次,采用laravel queue消費(fèi)這些回調(diào)。目前遇到的問題:
1.對服務(wù)器內(nèi)存消耗較大,需要開了200多個(gè)進(jìn)程去消費(fèi)這些回調(diào)
2.有的客戶提供http 服務(wù)器響應(yīng)慢,就會阻塞消費(fèi)的進(jìn)程
3.各臺服務(wù)器負(fù)載均衡,所以由哪臺服務(wù)器發(fā)送的不可知,所以客戶那邊需要綁定我們所有負(fù)載服務(wù)器的ip作為白名單
4.重發(fā)機(jī)制依賴guzzle/http的retry,導(dǎo)致重試期間會嚴(yán)重阻塞隊(duì)列
5.沒有很好的記錄、查詢這些回調(diào)的機(jī)制

方案

1.采用webman來統(tǒng)一處理這些回調(diào),做一個(gè)轉(zhuǎn)發(fā)url,流程是:
laravel主項(xiàng)目->webman項(xiàng)目->第三方url

2.webman工作進(jìn)程接收數(shù)據(jù),并通過異步TCP客戶端的方式發(fā)送給 自定義10個(gè)進(jìn)程消費(fèi)(主要是不阻塞工作進(jìn)程)

3.自定義進(jìn)程中入庫、發(fā)送、更新庫中的對應(yīng)數(shù)據(jù)(如發(fā)送時(shí)間、第三方web服務(wù)器的響應(yīng)數(shù)據(jù)等,作為后期檢索發(fā)送的依據(jù))。其中自定義進(jìn)程發(fā)送中采用fiber的http協(xié)程發(fā)送

請問方案可行嗎? 尤其是3中的fiber的http協(xié)程發(fā)送,會阻塞自定義的消費(fèi)進(jìn)程嗎?

1445 1 1
1個(gè)回答

damao

webman開一個(gè)redis隊(duì)列,然后laravel主項(xiàng)目直接入隊(duì)列,隊(duì)列里訪問url。
隊(duì)列里用workerman/http-client 發(fā)起url請求,workerman/http-client本身就是非阻塞的,感覺用不到fiber。
當(dāng)然用fiber好處是以同步的方式寫代碼,業(yè)務(wù)不用寫在回調(diào)函數(shù)里了

  • xiaopi 2024-01-26

    感謝,我測試了一下,確實(shí)如果不要響應(yīng)結(jié)果的話,不需要fiber了,直接workerman/http-client發(fā)送就好了,然后回調(diào)再入庫

年代過于久遠(yuǎn),無法發(fā)表回答
??