npm 包 ckt-breaker 使用教程

随着前端技术的不断发展,前端应用的复杂度也在不断增加。在分布式环境下,应用程序的可用性变得越来越重要。当一个微服务或 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


猜你喜欢

  • npm 包 the-resource-history 使用教程

    前言 在开发前端应用程序时,我们通常使用各种不同的资源,如图片、字体、脚本或样式表。这些资源的加载和使用过程可能会对页面性能和用户体验产生影响。为了提高页面性能和用户体验,我们需要了解这些资源的加载过...

    2 年前
  • npm 包 toml2js 使用教程

    Toml2js 是一个将 TOML 格式转换为 JavaScript 对象的 npm 包。Toml2js 可以使前端开发者更轻松地解析和使用 TOML 数据。本文将介绍如何使用 toml2js。

    2 年前
  • npm 包 react-910ths 使用教程

    前言 在前端开发中,React 是一种非常流行的 JavaScript 库,它可帮助我们构建复杂的 Web 应用程序。而 react-910ths 是一个基于 React 的 UI 库,它提供了许多 ...

    2 年前
  • npm包rsafe使用教程

    在前端开发中,rsafe是一个非常实用的npm包,它提供了一种简单的RSA加密方法,让我们可以更方便地进行数据加密保护。本文将详细介绍如何使用rsafe,包括安装、引入和使用方法。

    2 年前
  • npm包react-apple-carousel使用教程

    1. 简介 React-Apple-Carousel是一款基于React.js的滑动轮播插件。它具有可定制化、易于使用和跨浏览器兼容的特点,是创建展示型网站时的有用插件之一。

    2 年前
  • npm 包 sharedb-level 使用教程

    在前端开发中,实时协作是一个很重要的功能,可以让多个用户同时编辑同一个文档或者画布。sharedb-level 是一个基于 Node.js 的 npm 包,提供了一种简单的方式来实现实时协作的功能。

    2 年前
  • npm 包 stage-cli 使用教程

    介绍 stage-cli 是一个基于 Node.js 的命令行工具,可以帮助我们方便地进行项目初始化、模板生成、执行脚本等操作。它可以让前端工程师更加专注于业务逻辑的开发,而不必担心项目初始化等琐碎的...

    2 年前
  • random-creative-word 的使用教程

    在前端开发时,常常需要使用到随机生成词语的功能,以便于填充文本或测试功能。在这种情况下,使用 NPM 包 random-creative-word 就是一种很好的解决方案。

    2 年前
  • npm 包 data-optional 使用教程

    data-optional 是一个轻量级的 JavaScript 库,它为我们处理可选数据提供了很大的便利。在前端开发中,经常会遇到某个数据为空的情况,这时候我们需要做判断和处理,但这样的代码往往不够...

    2 年前
  • npm 包 angular4-notifications 使用教程

    前言 近年来,前端开发越来越被大家所关注,它是一项与用户界面及用户体验相关的技术,包括 HTML,CSS 和 JavaScript 等。而 npm 是管理 Node.js 包(package)的工具,...

    2 年前
  • npm 包 solid-nm 使用教程

    在现代 web 开发中,构建与组件化已经成为了前端开发的一个必备技能。而在构建与组件化的过程中,我们通常会使用到很多工具和库,npm 包就是其中之一。本篇文章将详细地介绍一个常用的 npm 包 sol...

    2 年前
  • npm 包 dimacs-parser 使用教程

    在前端开发过程中,我们经常需要解析和操作一些 DIMACS 格式的文件。而 npm 包 dimacs-parser 可以帮助我们快速地解析 DIMACS 文件,并将其转换为可操作的 JavaScrip...

    2 年前
  • npm 包 angular1-templateurl-loader 使用教程

    前言 在 Angular1 的开发中,经常会遇到模板页面的加载问题,如果不加以优化,可能会造成应用程序性能的下降和用户体验的劣化。此时我们可以引入 angular1-templateurl-loade...

    2 年前
  • npm 包 sg-test-component 使用教程

    在前端开发中,我们经常会用到一些第三方的工具库来辅助我们的开发工作,而 npm 是目前最流行的包管理工具之一。本篇文章将介绍如何使用 npm 包 sg-test-component 来快速开发前端页面...

    2 年前
  • npm 包 petclinic 使用教程

    介绍 npm 是 Node.js 的包管理器,它可以方便地安装和管理各种 Node.js 包,其中包括用于前端开发的很多包。其中一个非常有用的包就是 Petclinic,它是一个基于 Spring B...

    2 年前
  • npm 包 xyzapphere 使用教程

    在前端开发中,使用第三方库和工具是很常见的事情。npm 是一个优秀的包管理工具,方便开发者分享自己的代码,或者使用其他开发者的代码。xyzapphere 就是一个非常有用的 npm 包,可以帮助前端开...

    2 年前
  • npm 包 git-linter 使用教程

    随着技术的不断发展,前端工程师们不断拓展自己的技能树,从而可以更好地应对日常开发中遇到的问题。在这些技能树中,使用 git 作为版本控制软件是必不可少的,同时使用一些工具来保证代码的规范和质量也是前端...

    2 年前
  • npm 包 git_jekyll_post 使用教程

    如果你正在用 Jekyll 构建个人博客网站,你可能会希望使用 git 来提交和管理你的博客文章。而 git_jekyll_post 这个 npm 包可以帮助你通过命令行快速创建和提交 Jekyll ...

    2 年前
  • npm 包 the-controller-manage 使用教程

    在前端开发中,经常需要使用到各种框架和工具来提高开发效率。其中,npm 是前端开发中必备的包管理工具之一。本文将介绍一款 npm 包,名为 the-controller-manage,它可以用于管理前...

    2 年前
  • NPM 包 the-resource-user 使用教程

    在前端开发中,使用合适的资源文件是非常重要的。然而,当多个页面需要引用相同的资源文件时,手动维护这些依赖关系可能会非常繁琐。为了解决这个问题,有许多第三方库提供了资源文件管理的功能,其中 NPM 包 ...

    2 年前

相关推荐

    暂无文章