npm 包 envoy 使用教程

阅读时长 6 分钟读完

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

纠错
反馈