跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • nodejs 如何同时高性能的发送多个请求?
未分類
1 10 月 2020

nodejs 如何同时高性能的发送多个请求?

nodejs 如何同时高性能的发送多个请求?

資深大佬 : weishijun14 0

请教一下,nodejs 不是能用 http.get 发送请求么, 假设我要同时发十个请求,用 http.get 应该要怎么写比较好? 我自己知道的就是用 promise.all , 但是想知道有没有更加高性能的写法 /?

// 我自己目前的写法: function fetchAll () {   http.get('url1').then();   http.get('url2').then();   http.get('url3').then();   http.get('url4').then();   ...   http.get('url10').then(); } // 这里的十个请求肯定是并行不阻塞的,所以用起来并没有什么大问题。只是这样看起来 // 不是很优雅。也不知道会不会有什么性能问题。 

大佬有話說 (4)

  • 資深大佬 : TomVista

    把.then();的内容拆出去,写成函数,不要在 fetchAll 里放一堆,其他没什么.

    要优雅的话,用 node EventEmitter,拆分成观察者模式

    高性能,不用考虑,几十 几百并发 http,一般出问题在网络带宽上,

  • 資深大佬 : ysc3839

    Promise.all 应该是最优解。
    你目前的写法,是因为 then 里面的处理代码完全不同吗?如果是不同的话那这么写也没什么问题了。
    还有要考虑的是使用的 http 库会不会自动复用连接以及是否支持 HTTP/2 。假设你这里的 url 全都是同一个域名,有的 http 库会自动使用同一个 TCP 连接,有的要主动创建一个 session 对象才会复用。会复用连接的情况下,HTTP/1.x 可能会降低性能,但 HTTP/2 则会提高性能。
    追求更高性能的话可能要用 C/C++ 写扩展了。

  • 主 資深大佬 : weishijun14

    @TomVista @ysc3839

    感谢上大佬们的解答!
    按照解答来说的话,就是没啥大问题了。。。因为目前确实没有很大量的请求。。我先这么写着。。后期要调整的时候再来看看大佬们的方法。。

  • 資深大佬 : zihuyishi

    我觉得相对于 http 请求本身的时间,这里怎么写应该都不会影响到性能吧。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具