npm 包 envoy 使用教程

AI 编程助手,豆包旗下的编程助手,提供智能补全、智能预测、智能问答等能力,节省开发时间,释放脑海中的创造力,支持 VSCode,点击体验 AI

Envoy 是一个流量转发代理工具,用于在微服务体系结构中管理网络流量。它提供了透明且高效的负载均衡、故障转移和服务发现功能,让你的服务可以无缝地协作工作。在本文中,我们将介绍如何使用 npm 包 envoy 来快速搭建 Envoy 的应用。

安装 Envoy 包

使用 npm 包管理工具,我们可以轻松地安装 envoy 包,具体指令如下:

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

编写 Envoy 配置

使用 Envoy 的第一步是编写一个配置文件。它使用 YAML 格式,描述了 Envoy 实例如何管理服务流量。下面是一个简单的配置文件示例:

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

该配置文件将监听端口 8080,将流量路由到负载均衡集群 local_service。该集群使用 round_robin(轮询)负载均衡策略,它只有一个成员 —— 127.0.0.1:8081,这意味着 Envoy 将流量转发到该地址。

你也可以使用其他负载均衡策略和集群成员。Envoy 提供了很多内置的负载均衡策略,如 static、round_robin、ring_hash、maglev,以及对接 Google Kubernetes Engine 和 Amazon Elastic Container Service 等云平台的外部负载均衡策略。

启动 Envoy

当你完成 Envoy 的配置后,你需要启动它来开始监听流量并将其路由到负载均衡集群。使用以下指令启动 Envoy:

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

其中 /path/to/your/config.yml 是你的配置文件的路径。

创建 Node.js 服务器应用

在这个示例中,我们尝试创建一个简单的 Node.js HTTP 服务器应用,在其 GET / 路径上返回 “Hello, World!”。下面是一个实现该功能的示例代码:

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

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

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

验证 Envoy 的负载均衡

现在,我们已经有了一个运行着的 HTTP 服务器,同时 Envoy 也正在监听着。在浏览器中访问 localhost:8080 可以看到下图所示的 “Hello, World!” 消息:

你可能会诧异于这里使我们启动的 HTTP 服务器的地址是 127.0.0.1:8081,不是标准的 HTTP 80 端口,但是不要担心,Envoy 会将所有流量转发到我们的服务器,所以我们不需要在代码中更改任何端口或 URL。

假设现在我们启动另一个服务器,来模拟另一个后端服务。在这个示例中,我们将此第二个服务器部署在 localhost:8082 地址上。在 Envoy 的配置文件中添加下面代码:

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

它添加了另一个服务器地址到集群的成员列表中。现在当我们在浏览器中刷新了几次页面,这些请求应该以循环的方式发送到两个不同的服务器,以演示 Envoy 的负载均衡功能。

结论

在本文中,我们介绍了如何使用 npm 包 envoy 快速搭建 Envoy 应用,了解了 Envoy 的基本配置和工作原理,并且以示例代码演示了它如何转发流量和进行负载均衡。希望这篇文章为你了解 Envoy 提供了基础和指导。你可以通过阅读 Envoy 的详细文档来了解更多关于它的更高级用法和配置。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60066e26a563576b7b1ecf73


猜你喜欢

  • npm 包 kexpress-store-um 使用教程

    介绍 kexpress-store-um 是一个便捷的 Session 存储中间件,使用 express-session 库作为基础,支持用户模型管理 (UM) 系统。

    4 年前
  • npm 包 keys-length 使用教程

    介绍 keys-length 是一个可以用于计算 JavaScript 对象 key 数量的 npm 包。在一些场景下,我们可能需要知道对象的 key 数量,例如在进行对象的比较时,我们需要通过对象的...

    4 年前
  • npm 包 keflx 使用教程

    Keaflux 是一个强大的 React 状态管理库,它可以帮助开发者轻松地管理状态,并减少状态管理方面的代码量。 在本篇文章中,我们将介绍如何使用 Keaflux 库以及如何在项目中利用它。

    4 年前
  • npm 包 keysdown 使用教程

    在前端开发中,经常需要对用户的键盘操作做出响应。而 JavaScript 原生提供的事件监听器只能监听键盘按键是否被按下,无法判断多个按键是否同时被按下。这时候有一个 npm 包,可以帮助我们实现监听...

    4 年前
  • npm 包 key-by-val 使用教程

    什么是 key-by-val key-by-val 是一个用于将数组转换为键值对象的 npm 包。它可以将一个数组中的每个元素的指定属性值作为键,将整个元素作为值,然后将它们组合成一个对象。

    4 年前
  • npm 包 key-cache 使用教程

    简介 在前端应用开发中,数据缓存是非常有用的功能。而 npm 包 key-cache 就提供了一个简单易用的方法来实现数据缓存。本文将介绍 key-cache 的基本使用教程,包括安装、初始化、设置和...

    4 年前
  • npm 包 key-casing 使用教程

    在处理 JavaScript 对象时,往往需要进行一些格式转换,比如将属性名从驼峰命名法转换为下划线命名法。为了方便地进行这种转换,开发人员可以使用 npm 包 key-casing。

    4 年前
  • npm 包 key-code 使用教程

    简介 在前端开发中,我们常常需要监听键盘输入,以实现一些特殊的功能或增强用户体验,如快捷键、输入限制等。而 key-code 就是一个能够帮助你完成这些工作的 npm 包。

    4 年前
  • npm 包 key-code-map 使用教程

    简介 在前端开发中,我们经常需要操作键盘,例如监听按键事件,获取特定键位的 keyCode 等。而 keyCode 值在不同的浏览器中有差异,因此我们需要一个工具来统一管理 keyCode 值。

    4 年前
  • npm 包 key-count 使用教程

    在前端开发中,经常会遇到需要对某个对象或数组中的特定属性进行计数的场景,这时候一个非常实用的工具就是 npm 包 key-count。 key-count 可以用来对 JavaScript 对象中某个...

    4 年前
  • npm 包 key-derivation 使用教程

    随着云计算和大数据时代的到来,数据安全性越来越受到关注。在应用程序中,密码加密和解密一直是最主要的安全要求之一。而 key-derivation 作为一个 npm 包,提供了一种简单易用的密码推导方案...

    4 年前
  • NPM 包 Kein 使用教程

    简介 Kein 是一个轻量级 JavaScript 函数库,旨在提供一个简单且可维护的代码库,以快速构建 Web 应用。 它提供了许多实用的功能和工具,使得开发者能够更加便捷地操作 DOM 和处理事件...

    4 年前
  • npm 包 keiyaku-css 使用教程

    在前端开发中,CSS 是不可或缺的一部分。然而,手写 CSS 样式往往会极大地影响开发效率,尤其对于那些对 CSS 不太熟悉的开发者而言。因此,可以使用现成的 CSS 库来加快开发速度并提高代码可维护...

    4 年前
  • npm 包 keys-until-click 使用教程

    前言 在前端开发中,我们经常需要监听用户的键盘输入来完成一些交互操作,如搜索框输入提示、表单验证等等。但有些场景下,我们希望用户先输入完整内容后再触发相应操作,这时就需要借用 keys-until-c...

    4 年前
  • 使用 kevoree-registry-client 的 npm 包

    简介 Kevoree Registry Client 是一个用于连接 Kevoree Registry 的 Node.js 客户端。 Kevoree 是一个面向对象的分布式系统的开发平台,在该平台中,...

    4 年前
  • npm 包 keyscan 使用教程

    随着前端开发的发展,npm 成为了前端包管理中不可或缺的一部分。在前端开发中,往往需要获取键盘输入,而 keyscan 就是一款 npm 包,可以监听键盘输入。 安装 keyscan 在终端中使用以下...

    4 年前
  • npm 包 keypunch 使用教程

    简介 Keypunch 是一个小型的 JavaScript 库,可以用于监听用户按键事件并执行对应的回调函数。本文将介绍如何使用 npm 包 keypunch 进行前端开发。

    4 年前
  • npm 包 kb-config 使用教程

    前言 现在在前端开发中,我们经常需要在项目中使用配置文件,可以根据不同的环境配置不同的参数。业界通用的做法是将配置文件打包到项目的代码中,但是这样有几个问题: 配置文件泄漏的风险较高 如果配置文件更...

    4 年前
  • npm 包 kb-logger 使用教程

    前言 在前端开发中,一个好的日志系统可以帮助开发者更好地 debug 和排查问题。在这方面,kb-logger 是一个实用的 npm 包,它提供了一个易于使用的接口来写入日志,并支持多个日志级别和能够...

    4 年前
  • npm 包 kb-require 使用教程

    简介 在前端开发中,模块化是一个重要的概念,而使用模块化的过程中,我们经常需要引入其他的模块来进行开发。而 kb-require 就是一个可以方便地引入 npm 包的工具。

    4 年前

相关推荐

    暂无文章