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