小编Swi*_*386的帖子

为什么我在 API 网关中遇到 Task.WhenAll、RestSharp 和 Async-Await 的性能不佳?

我正在编写一个搜索 API,它使用 async-await 和 awaiting Task.WhenAll 聚合来自许多微服务 API 的结果。我最多对 Search API 的每个请求进行 11 次微服务 API 调用。但是,我看到性能不一致 - 有时 Search API 需要 400 毫秒(可接受),而其他的则需要 1 秒以上(不可接受),即使我在本地运行/无负载时也是如此。大部分放缓似乎发生在 await Task.WhenAll 周围。

三个观察:

  • 搜索 API 有时会启动对微服务 API 的 1/3 或 1/2 调用,然后等待 600-1000 毫秒以启动下一组调用。这种批处理行为是不一致的。

  • 搜索 API 有时会调用每个微服务 API,获取结果并再等待 500-1000 毫秒。例如,Search API 可能需要 1000 毫秒,所有微服务请求都在 100 毫秒内开始,并在 400 毫秒或更短的时间内在内部完成。但是,在响应全部发回后,搜索 API 只会继续在 WhenAll 上停留 500 毫秒。

  • 这种行为是不一致的。如果我运行 30 次,可能其中 5 或 10 次相对于其他 25 或 20 次需要超长的时间。

所有 API 都是用 ASP.NET Core MVC 编写的,在单个 docker 网络上的 …

c# restsharp async-await docker asp.net-core-mvc

5
推荐指数
0
解决办法
974
查看次数

使用全局 fastify-cli (mac) 时节点“错误:找不到模块 'node:process'”

我正在设置一台新的 mac 开发机器,并安装了 node、npm 和 nvm。在单个项目目录中一切看起来都很好。但是,当尝试安装和使用时fastify-cli,我收到错误:

internal/modules/cjs/loader.js:892
  throw err;
  ^

Error: Cannot find module 'node:process'
Require stack:
- /Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/marked-terminal/index.cjs
- /Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/blessed-contrib/lib/widget/markdown.js
- /Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/blessed-contrib/index.js
- /Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/docs.js
- /Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/cli.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at Object.<anonymous> (/Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/marked-terminal/index.cjs:3:17)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)
    at Module.require (internal/modules/cjs/loader.js:961:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/marked-terminal/index.cjs',
    '/Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/blessed-contrib/lib/widget/markdown.js',
    '/Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/node_modules/blessed-contrib/index.js',
    '/Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/docs.js',
    '/Users/a/.nvm/versions/node/v14.17.5/lib/node_modules/fastify-cli/cli.js'
  ]
}
Run Code Online (Sandbox Code Playgroud)

重现步骤:

  1. $ npm install --global fastify-cli(成功)
  2. $ fastify …

node.js npm node-modules fastify

0
推荐指数
1
解决办法
8166
查看次数