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

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

xiaopi

問題描述

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

方案

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

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

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

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

1611 1 1
1個回答

damao

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

  • xiaopi 2024-01-26

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

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