介绍
hystrix-too-busy 是一个专用于 Node.js 服务的 NPM 包,它帮助您通过查看服务工作负载以及 CPU/内存利用率来检测和避免节点过载的现象。
安装
通过 NPM 安装该包:
npm install hystrix-too-busy --save
使用
基础使用
-- -------------------- ---- ------- ----- ------- - ------------------ ----- --- - --------- ----- -------------- - --------------------------- ------------------------ ------------------ ----- ----------------- ---------- ------------ ---------- ------------------------ ---- -- ---- --- --- --- -- --- ------------ ----- ---- -- - --------------- -------- -- ---------------- -- -- - -------------------- --- --------- -- ---- ------- --
参数
您可以通过 hystrixTooBusy
函数的参数来配置检测参数:
maxEventLoopDelay
:event loop 的最长等待时间(单位:ms),默认为 70 ms。maxHeapUsedBytes
:最大的堆内存使用量(单位:bytes),默认为 0,即该参数被禁用。maxRssBytes
:最大的进程内存使用量(单位:bytes),默认为 0,即该参数被禁用。maxEventLoopUtilization
:目标 event loop 利用率,表示 CPU 工作时间在 event loop 上的时间占 CPU 总时间的比例。默认为 0,即该参数被禁用。
反例
以下是示例代码中的错误实现:
-- -------------------- ---- ------- ----- ------- - ------------------ ----- --- - --------- ----- -------------- - --------------------------- ------------------------ ------------------ ----- ----------------- ---------- ------------ ---------- ------------------------ --- --- ------------ ----- ---- -- - --------------- -------- -- ---------------- -- -- - -------------------- --- --------- -- ---- ------- --
上述代码中的 maxEventLoopUtilization
被设置为了 0.2,表示目标 event loop 利用率为 20%。这个值太低了,会导致代码无法快速响应请求,从而增加服务的延迟。
结论
使用 hystrix-too-busy 可以帮助您及时发现和避免服务过载的现象,提升代码响应速度,提高服务可靠性。需要注意的是,在设置参数时一定要保证合理性,使其能够在不影响服务质量的情况下充分发挥作用。
更多功能和使用方法,可参考官方文档:https://www.npmjs.com/package/hystrix-too-busy
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005608081e8991b448deb48