如何启用SAP云计算集成套件从SAP事件网格服务中获取消息

168 阅读4分钟

作者Vipul Khullar&Ayush Kumar

本系列的上一篇博文。

绪论

在之前的博文中,我们看到了如何使用SAP Event Mesh服务在不同的基于CAP的微服务之间进行通信,以实现真正的异步通信,以及CAP框架是如何实现的。
在这篇博文中,我们将尝试通过利用SAP Cloud Integration Suite作为两个微服务之间的中间件来实现同样的功能,这将是非常有用的,尤其是在第二微服务中不需要特定事件处理的情况下(只打算通过API通信)。

先决条件

要执行以下方案,你需要。

  • BTP账户(试用账户也可以)。
  • 子账户的Event Mesh订阅。
  • Event Mesh实例的服务密钥。
  • 为您的子账户订阅云整合套件。
  • CAP JAVA的本地设置(如果你已经初始化了CAP应用程序,将CDS服务版本升级到1.22.1或更高,否则你可能会面临运行时错误,抱怨bean错误)。

场景。

Architecture%20Diagram%20for%20Event%20Mesh-based%20Communication%20Between%20two%20microservices%20via%20SAP%20Integration%20Suite

通过SAP集成套件在两个微服务之间进行基于事件网的通信的架构图

在这个场景中,我们在BTP上创建了两个基于CAP的微服务,并试图借助Event Mesh和SAP Cloud Integration Suite在服务之间建立基于事件的通信。我们试图利用云集成流程中的AMQP适配器来监听第一个微服务引发的事件,然后利用第二个微服务中的API端点将数据复制到同一个服务中。

SAP Event Mesh的步骤。

  • 打开SAP Event Mesh Message Client用户界面。
  • 选择你的实例(Message Client)。
  • 创建一个队列,名称自定。
    • 注意:你也可以使用默认队列,它是由CAP应用程序在运行时生成的。

注意:出于演示的目的,我们将使用队列名称为emDataMappingQueue,并订阅与之前博客中使用的相同主题。

  • 现在运行我们在之前的博客中创建的事件生产者应用程序。在Event Mesh用户界面中,你会看到消息在CAP创建的队列和我们创建的队列中都有增量。

SAP云整合的步骤。

Integration%20Flow

集成流程

  • 打开SAP云计算集成套件,导航到安全材料。使用之前博客中创建的SAP Event Mesh实例密钥创建一个oAuth2.0客户端凭证。(我们将使用这个凭证配置来连接到Event Mesh)
  • 创建一个新的工件。
  • 现在使用AMQP->WebSocket适配器将发送器连接到开始。
  • 现在再次打开密钥,在AMQP部分,你会发现配置AMQP所需的所有值。

Event%20Mesh%20Instance%20Service%20Key

Event Mesh Instance Service Key

在处理部分。

Event%20Mesh%20Configuration%20in%20Cloud%20Integration%20Flow%20%u2013%20Processing%20Section

云计算集成流程中的事件网格配置--处理部分

在连接部分。

Event%20Mesh%20Configuration%20in%20Cloud%20Integration%20Flow%20%u2013%20Connection%20Section

云计算集成流程中的事件网格配置--连接部分

  • 创建一个XSLT映射,将数据改为消费者期望的格式。

输入。

现在运行事件生成器应用程序,并创建一个发布请求,以发布学生的详细信息,如前一篇博文中所做的。

Post%20Request%20to%20Create%20a%20Student%20Record

创建一个学生记录的发布请求

输出。

现在,让我们在云计算集成套件中检查与所发生的事件相对应的跟踪。

Incoming%20Event%20Payload

传入事件的有效载荷

Payload%20After%20Mapping%20to%20the%20New%20Data%20model

映射到新数据模型后的有效载荷

Reading%20Consumer%20Microservice%20After%20Update

更新后读取消费者微服务

我们观察到,现在数据已经根据消费者微服务进行了映射,消费者微服务现在可以在不知道事件生产者的数据模型的情况下消费这些信息。

结论。 在这篇博文中,我们介绍了一个用例,在这个用例中,我们可以让多个可能有或没有类似数据模型的微服务相互通信,而不需要修改微服务中的任何内容。我们在SAP Event Mesh和SAP Cloud Integration Suite的帮助下实现了这一点。

在接下来的几篇博文中,我们将介绍如何使用SAP Event Mesh从SAP S/4HANA系统中提出和消费业务事件,以及如何在SAP Cloud Integration Suite或BTP上的任何其他应用程序中消费这些事件。

如果你觉得内容有帮助,请喜欢这篇博文。此外,如果有的话,请分享您的评论和意见。