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

http-client如何解決”回調(diào)地獄“的問(wèn)題

wenlei

目前是希望采用webman去實(shí)現(xiàn)各個(gè)微服務(wù),各服務(wù)之前的通信采用HTTP的方式,現(xiàn)在遇到的困惑是,由于業(yè)務(wù)中一個(gè)api內(nèi)可能會(huì)有多個(gè)http請(qǐng)求,而這些請(qǐng)求之間也有邏輯關(guān)系,實(shí)現(xiàn)的時(shí)候回調(diào)套回調(diào)會(huì)有好幾層,如何解決這個(gè)問(wèn)題呢?如果是node的話,可以用協(xié)程或者async await把異步轉(zhuǎn)成同步的編碼方式...

比如說(shuō)一個(gè)請(qǐng)求中需要包含ABCD四個(gè)請(qǐng)求,如果用http-client的話會(huì)是這樣:

function test(request $request){
    $http->get('A', function($respa) {
        $http->get('B', function($respb) {
            $http->get('C', function($respc) {
                $http->get('D', function($respd) {
                    json([$respa, $respb, $respc, $respd])
                })
            })
        })
    })
}

這樣的話 如果再handle一下每層回調(diào)的請(qǐng)求錯(cuò)誤邏輯,那就太復(fù)雜了

如果用CURL的話,又怕阻塞會(huì)導(dǎo)致性能降低

2976 2 0
2個(gè)回答

xiuwang

我覺(jué)得為了極限性能寫(xiě)異步代碼得不償失,代碼可讀性差,易出錯(cuò),不好維護(hù)。如果要極限性能,直接用go吧。

我們用webman都是同步阻塞的寫(xiě)法,也就是傳統(tǒng)項(xiàng)目寫(xiě)法,該用curl就用curl。如果外部調(diào)用多就多開(kāi)點(diǎn)進(jìn)程,性能也非常好。雖然沒(méi)用異步,但是壓測(cè)仍然比傳統(tǒng)框架寫(xiě)的接口高出幾倍,甚至是十幾倍。最關(guān)鍵的是業(yè)務(wù)代碼可以在webman和傳統(tǒng)框架里復(fù)用,開(kāi)發(fā)成本和維護(hù)成本大大降低。

  • evilk 2021-06-01

    一般來(lái)說(shuō),前期php-fpm,中期swoole or workerman,后期go,然而,一般到中期,就已經(jīng)很不錯(cuò)了

  • forgaoqiang 2021-06-10

    從PHP到Go的遷移成本可不低,不到一定規(guī)模或者時(shí)期 應(yīng)該沒(méi)辦法換技術(shù)棧

小陽(yáng)光

Promise或許能解救你

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??