跳到主要内容

迁移到事件驱动架构示例

以下部分提供了一个示例,说明如何使用 Microgateway 从传统的请求/回复架构迁移到事件驱动架构。

在传统的请求/回复架构下,添加一个新的事件驱动服务意味着需要对每个现有的微服务进行额外的负担,以支持至少两种消息交换模式(事件和请求/回复)。由于 Microgateway 可以将进入的事件转换为 REST HTTP 请求,因此您可以添加新的事件驱动应用程序,而无需干扰现有服务。此外,您可以同时运行两种环境,直到您准备好移除旧服务。

  • 概述
  • 开始之前
  • 第 1 步:创建 PubSub+ 软件事件代理
  • 第 2 步:在 PubSub+ 软件事件代理上配置 Microgateway
  • 第 3 步:发布事件
  • 第 4 步:清理
  • 下一步

概述

在本示例中,我们将创建一个 Solace PubSub+ 软件事件代理,在其上配置 Microgateway,并使用示例基于浏览器的应用程序向事件代理发布包含指定 IP 地址的事件。事件代理上的 Microgateway 将事件转换为 REST HTTP 请求,然后发送到 Geo Finder 应用程序。一旦收到,Geo Finder 应用程序将用有关 IP 地址的地理信息响应请求。

基于浏览器的事件发布者代表您正在向环境中添加的新事件驱动微服务,而 Geo Finder 应用程序代表现有的 REST HTTP 端点。

img

开始之前

假设您有:

  • Windows 10 Pro,或 Mac OS X Yosemite 10.10.3 或更高版本。
  • 已安装 Docker for Mac 或 Docker for Windows,并且至少为 Docker Engine 分配了 2 GiB 的内存。有关分配内存和交换空间的更多信息,请参阅 Docker for Windows 或 Docker for Mac 设置页面。
  • Google Chrome 作为您当前的浏览器。

第 1 步:创建 PubSub+ 软件事件代理

要为本示例创建 PubSub+ 软件事件代理:

  1. 启动 Docker Engine 并打开命令行终端。

  2. 下载 singleNode.yml Docker compose 模板文件:

    curl https://raw.githubusercontent.com/SolaceLabs/solace-docs-assets/master/microgateway/singleNode.yml -O
  3. 使用 compose 文件创建 PubSub+ 软件事件代理:

    本示例中的 compose 文件将多个容器端口发布到主机上的相同端口。如果这些端口中的任何一个正在使用,事件代理将不会激活。

    docker-compose -f singleNode.yml up -d

    如果事件代理创建成功,终端将显示以下输出:

    Creating pubSubStandardSingleNode ... done

第 2 步:在 PubSub+ 软件事件代理上配置 Microgateway

在您的事件代理能够处理事件之前,您需要在消息 VPN 上配置 Microgateway。

您可以使用以下方法之一配置您的事件代理:

  • 使用 SEMP 配置 Microgateway
  • 使用 Solace CLI 配置 Microgateway

要了解构成 Microgateway 的组件,请参阅微服务流量管理示例。

使用 SEMP 配置 Microgateway

要使用以下示例管理应用程序(该应用程序使用 SEMP 请求设置每个组件)在您的事件代理上配置 Microgateway:

  1. 点击 Run Pen 加载应用程序。

  2. 点击 Setup

    如果配置成功,Response 字段将显示以下内容:

    default VPN exists  --> creating queue gtwQ
    created queue gtwQ
    changed VPN mode to gateway
    added topic subscription to gtwQ
    added RDP to gtwQ
    binding RDP to gtwQ
    created rest consumer for rdp gtwRdp

    如果 Response 字段没有显示任何信息,您可能需要等待一分钟,让事件代理完成激活,然后重试。

    查看 CodePen 上 Solace Cloud(@solacecloud)的 Pen Solace PubSub+ Configure MicroGateway。

使用 Solace CLI 配置 Microgateway

要使用 Solace CLI 在您的事件代理上配置 Microgateway:

  1. 输入以下 docker exec 命令以访问您的事件代理的 CLI。

    docker exec -it pubSubStandardSingleNode /usr/sw/loads/currentload/bin/cli -A
  2. 输入以下命令。

  3. 输入以下 show 命令,以验证事件代理是否已准备好处理请求(Admin StateOper State 标志均为 Up)。

第 3 步:发布事件

要使用以下提供的示例应用程序发布事件:

  1. 点击 Run Pen 加载应用程序。

  2. 点击 Connect 连接到您的事件代理。

  3. IP (get geo location) 字段中输入一个 IP 地址。

  4. 点击 Request 通过您的事件代理将事件发布到 Geo Finder 端点。

    您传递到请求中的 IP 地址相关的地理信息将显示在 Response 字段中。

    查看 CodePen 上 Solace Cloud(@solacecloud)的 Pen Event Driven Microservice (Solace PubSub+)。

第 4 步:清理

要移除事件代理并清理所有相关资源,请输入以下 docker-compose 命令:

docker-compose -f singleNode.yml down -v

下一步

此时,您将创建了一个 Solace PubSub+ 软件事件代理,在其上配置了 Microgateway,并通过事件代理将事件发布到现有的 REST HTTP 端点。

本示例应为您提供一些关于如何使用 Solace Microgateway 将事件驱动应用程序添加到现有请求/回复架构的想法,作为您迁移到事件驱动架构的一部分。

从这里,我们鼓励您查看以下主题,以了解 Microgateway 功能启用的其他功能:

  • Microgateway 用例

  • Microgateways