npm 包 @hapiness/etcd3 使用教程

阅读时长 7 分钟读完

前言

etcd 是一个高可用的键值存储系统,用于在分布式系统中存储配置和服务发现信息。etcd3 是其第三版,是一个由 CoreOS 社区开发的分布式的键值存储系统。@hapiness/etcd3 是基于 etcd3-node 基础上开发的适用于 Node.js 的 etcd3 客户端库,其提供了更熟悉 Node.js 编程的 API 以及优秀的 TypeScript 支持。

本文将通过详细的使用教程,为大家介绍 @hapiness/etcd3 的使用方法。

安装 @hapiness/etcd3

使用 npm 安装 @hapiness/etcd3

连接到 etcd

在使用 @hapiness/etcd3 前,需要先连接到 etcd。

Etcd3 构造函数接收一个配置对象,可配置字段包括:

  • hosts: {string[]} etcd 服务地址,格式为 http(s)://hostname:port,多地址时传入数组。默认值为:['127.0.0.1:2379']
  • credentials: { object } etcd 认证证书。此处不做介绍。

基本操作

以下是 @hapiness/etcd3 提供的基本操作API:

put

添加一个键值对。

  • put:指定操作类型为 put
  • key:指定键名
  • value:指定键值

get

根据键名获得其对应的值。

  • get:指定操作类型为 get
  • key:指定键名
  • string:以字符串形式返回值,其他返回方式见后文

watch

监听某一个键值对的变化。

  • watch:指定操作类型为 watch
  • key:指定需要监听的键名
  • create:创建一个监听器,并返回 Promise

watcher 对象支持以下事件:

  • put:在监视器上注册一个 put 事件,表示有一个新的键值对存入了对应的键名
  • delete:在监视器上注册一个 delete 事件,表示有一个键值对被删除了

lease

分配一个租约,并给其绑定一个键值对。

  • lease:指定租约的值,单位为秒
  • put:指定操作类型为 put
  • key:指定键名
  • value:指定键值

作为绑定 lease 的连锁内容,还可以实现续约和撤销租约。

-- -------------------- ---- -------
----- ---- - --- -------
    ------ ------------------
---

----- ----- - ---------------

---------------
      ---------------
      -------------
      -------
      ------------------
      -------- -- ------------------
      ------------------
      -------- -- ---------------
      ------------------
      ----------------------

transaction

返回一个带有事务支持的对象,使用该对象进行操作,即可完成类似于数据库交易的相关功能。常用的操作有:putgetdeletecommitrollback 等。

  • tx:指定操作类型为 transaction
  • if:在该方法内传入要比较的键名、运算符和要比较的值,用于判断。仅当判断结果为 true 时才会执行之后的 operation。支持的运算符包括:
    • >: 大于
    • >=: 大于等于
    • <: 小于
    • <=: 小于等于
    • ==: 等于
    • !=: 不等于
  • put:指定操作类型为 put
  • key2:要添加的新键
  • value2:要添加的新键值
  • commit:提交操作

以上是 @hapiness/etcd3 提供的基本操作,结束基本操作后需要调用 exec() 方法来执行命令。

示例代码

-- -------------------- ---- -------
------ - ----- - ---- ------------------

----- -------- ------ -
    ----- ---- - --- -------
        ------ ------------------
    ---

    -- ---
    ----- ---------------------------------

    -- ---
    ----- --- - ----- -------------------------
    ----------------- -- -----

    -- -----
    --------------------------------------------- -- -
        -------
            ---------- ------------
            ------------- ------------
            ----------------------

        ---------------- -- -- ----- ---------------------------------- ------
    ---

    -- -----
    ----- ----- - ---------------

    ----- ----------------------------------------------

    ----- ------------------------------------

    ----- ---------------------------------

    -- -----------
    ----- ---------
              ---------- ----- --------
              ----------------------------
              ---------
              ------------------
              ----------------------
-

----------------------------

结论

本文为大家介绍了 @hapiness/etcd3 的使用方法。希望可以对广大前端开发者提供一些新的思路和灵感,使其可以顺利的使用 etcd 这一服务。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bbb967216659e2440fb

纠错
反馈