随着前端技术的不断发展,前端应用的复杂度也在不断增加。在分布式环境下,应用程序的可用性变得越来越重要。当一个微服务或 API 不可用时,它将会导致许多问题,如尽早发现问题以便快速恢复等。
在这种情况下,熔断器就成为了 Web 前端的重要组件。在本篇文章中,我们将介绍一款名为 ckt-breaker 的 npm 包,它是一个非常优秀的熔断器实现。
简介
ckt-breaker 是一款 Node.js 的熔断器实现,主要用于控制对一个故障的微服务,避免使它陷入死循环等。熔断器由 Martin Fowler 提出,它关注容错和可恢复性的构件模式,主要适用于分布式系统中微服务的调用。
特性
- 非侵入式调用
- 同步和异步函数支持
- 请求信号量支持
- 断路器状态监听支持
- 支持回退模式
安装
安装 ckt-breaker 只需要使用 npm:
--- ------- ----------- ------
示例
创建实例
----- -------------- - ----------------------- ----- ----------- - --- ---------------- ---------- - ------ -- ------------- -- ---------------- - --- -- ---------------- -------- - ------ -- ------------------ ---------------------- - -- -- -------------------------------- ------------- - -- -- --- -- -------------- ---
注册函数
----- --- - -- -- - ------ ---------------------- -- ----- --- - -- -- - ------ ------------------ ------------- -- --------------------------------------- ----- ------------------------------------- -----
调用函数
----------------------------- -------- -- - ----------------------- -- --------- -- - ---------------------- --- --------------------------- -------- -- - ----------------------- -- --------- -- - ---------------------- ---
重试
----- --- - -- -- - ------ --- ----------------- ------- -- - ------------- -- - ---------- ------------- -- ------ --- -- ------------------------------------- ----- --------------------------- -------- -- - ----------------------- -- ------------ -- - -------------------------- --- ------- - ------------- -- - --------------------------- -------- -- - ----------------------- -- --------- -- - ---------------------- --- -- ----------------- - ---
当熔断器处于打开状态时,我们需要等待熔断器自动恢复。resetTime 属性会告诉我们重试前需要等待的时间。这种模式用于支持过程中断,并减少出错次数。
断路器状态监听
----- --- - -- -- - ------ ------------------ ------------- -- --------------------------------------- ----- ------------------------------------ ------- -- - ------------------ -------- ---- ------- --- ----------------------------- -------- -- - ----------------------- -- --------- -- - ---------------------- ---
结论
ckt-breaker 是一个非常有用的熔断器实现,它的功能强大,同时也非常易于使用。在 Node.js 微服务的场景中,我们可以方便的使用它来提高我们应用的可靠性。
参考文献
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005595f81e8991b448d6c9b