webman 并發(fā)測試 用postjson 壓力測試工具跟ab,都是秒響應(yīng) 2k或者8k
比方說
寫了一個(gè) index() 方法 ,里面只輸出 helloworld, 壓力測試的時(shí)候可以直接秒響應(yīng)2k
另外寫一個(gè)test方法 curlpost 去請求 (上面這個(gè)index方法) ip:8787/index 的時(shí)候
這個(gè)時(shí)候 壓力測試 響應(yīng)才2個(gè) 或者幾十個(gè) ,不會(huì)秒響應(yīng),但是他會(huì)在我的超時(shí)時(shí)間內(nèi) 慢慢請求,而且請求會(huì)超時(shí),不懂了,希望有大哥能指點(diǎn)一下
你這 別人也看不懂呀,你截個(gè)圖 啥的
死循環(huán)了啊,都在等待對方響應(yīng)····
比如A B公用10個(gè)進(jìn)程對外服務(wù),A發(fā)起curl請求B,如果同時(shí)發(fā)來10個(gè)A請求,這時(shí)每個(gè)進(jìn)程都同時(shí)發(fā)起一個(gè)curl阻塞請求B接口,那么這10個(gè)進(jìn)程就都進(jìn)入阻塞狀態(tài)不能響應(yīng)任何其他請求。因?yàn)?0個(gè)進(jìn)程都被A接口占用完了,那么沒有進(jìn)程可以處理B請求,導(dǎo)致死鎖。
單個(gè)沒問題是因?yàn)槭冀K有空閑進(jìn)程能提供curl響應(yīng)
還有一個(gè)問題,我需要發(fā)送很多個(gè)請求 給別人 現(xiàn)在用的 redis 隊(duì)列,但是這個(gè)好像是排隊(duì)進(jìn)行了的,如果我一次性要處理很多個(gè)是要用多個(gè)隊(duì)列來消耗嗎
最簡單的A網(wǎng)絡(luò)調(diào)用B改成A內(nèi)部函數(shù)調(diào)用B就好了。
redis隊(duì)列一個(gè)隊(duì)列可以啟動(dòng)多個(gè)消費(fèi)者消費(fèi),不一定要?jiǎng)?chuàng)建多隊(duì)列。
<?php
return [
...這里省略了其它配置...
'redis_consumer' => [
'handler' => Webman\RedisQueue\Process\Consumer::class,
'count' => 8, // 可以設(shè)置多進(jìn)程
'constructor' => [
// 消費(fèi)者類目錄
'consumer_dir' => app_path() . '/queue/redis'
]
]
]; 是這個(gè)么 , 只有8個(gè)
你的意思是:
class IndexController {
public function index(){ return "hello world";}
public function test(){return curl index();}
}
// curl index() 返回很快,test() 很慢?