小编:我作为一名SAP解决方案架构师工作了几年,专注于S/4HANA和SAP云平台的定制开发。 几个月前我第一次接触到企业消息服务时,我很高兴我们终于有了一个消息代理,它将帮助我设计基于
我作为一名SAP解决方案架构师工作了几年,专注于S/4HANA和SAP云平台的定制开发。
几个月前我第一次接触到企业消息服务时,我很高兴我们终于有了一个消息代理,它将帮助我设计基于SAP云平台的微服务架构的应用程序。我不必再依赖非SAP工具了。
所以当我开始学习SAP云平台上的企业消息传递时,我意识到可用的信息不多。因此,我想我将从我收集的经验中为这个知识库贡献我的2分钱。
这个博客不仅提供了企业消息服务的信息,而且还提供了您如何使用它来扩展S/4HANA。
当出现流行病并且您正在度假时,您还会做些什么。
什么是企业消息服务?
关于这一点,我不想写太多,云服务器的,但简单描述一下,企业消息传递是一种基于云的服务,它使应用程序(内部部署或云)能够异步通信。
这里的关键是"异步"一词,阿里云挂淘客,因为它意味着一家公司可以创建大量的应用程序,而不必担心编程语言或其他问题开发团队之间的协调。企业消息传递服务充当一个代理,管理消息、队列和订阅
我认为一个真正的基于微服务的应用程序总是需要一个像企业消息传递这样的复杂的消息传递服务
那么图片看起来如何?
上图描述了两个要点
异步通信与任何应用程序的集成
这种模式不仅有助于开发独立的应用程序,而且对S/4HANA的可扩展性也有重要作用
例如:在S/4HANA内部创建业务伙伴时,阿里云分销商,可以触发一个事件,该事件将在云中的企业消息服务上注册。任何应用程序都可以订阅这些事件并执行后续操作,Orchestrator服务和Receiver服务。
在我们的场景中,发送方服务将引发一条消息,指示企业环境中发生的事件。
Orchestrator服务是侦听器,知道所有人都对该事件感兴趣。它最终调用执行后续操作的接收器API。
我对所有这些都使用了NodeJS,但您可以使用Java、Python等实现类似的服务。
前提条件
我使用了以下工具进行此设置。
Visual Studio代码SAP业务应用程序工作室nodejsv12.0(当我开始的时候,sapcap不支持更高的版本)SAP CDS客户端SAP云平台试用帐户SAP Cloud Foundry CLI
第0步:设置工具
您可以从https://code.visualstudio.com/download
请从安装NodeJS版本v12https://nodejs.org/dist/latest-v12.x/
我选择了'node-v12.20.0-win-x64.zip',但是根据您的机器选择一个合适的。
解压将文件放置到合适的位置并设置环境变量。
我假设您已经拥有SAP云平台试用帐户。如果没有,请用空格创建一个。
输入您的空格并单击服务市场。
搜索企业消息。
选择并单击创建实例。
由于您是试用帐户,因此只能创建开发计划。选择它并输入一个实例名称,如下所示。
单击"下一步",输入以下参数
然后单击"创建实例"。
企业消息服务还为我们提供了一个仪表板,该仪表板提供了所有消息和队列的概述。
要访问该仪表板,转到我们刚刚创建的服务实例,在"选项"菜单中选择"查看仪表板"
请忽略上图中显示的绑定。
现在应启动消息传递管理。
在此处,选择"队列",然后单击"创建"。输入customerqueue名称。
最后创建一个队列订阅。单击Queue Subscriptions(队列订阅)并单击Create(创建)。
选择您在上面创建的队列名称,并提供主题名称customer/created(客户/创建)。
订阅的名称很重要,因为它应该与我们将在发件人应用程序中发出消息的订阅名称相匹配。
如您所见,您可以为其创建多个主题相同的队列可以帮助您根据不同的事件更好地组织消息。例如,您可以拥有一个名为customer/delete的订阅。当客户在S/4HANA中被删除时,它会向该主题发送一条消息。
如果您尚未安装cloud foundry的CLI,请按照链接中的说明操作https://developers.sap.com/tutorials/cp-cf-download-cli.html
好的,现在我们应该准备好我们的发展!!
发送者服务
我将写一个单独的博客来连接S/4HANA作为发送者系统。
为了简单起见,我基于NodeJS创建了一个简单的sender应用程序https://blogs.sap.com/2020/03/03/sap-cloud-application-programming-model-and-enterprise-messaging-2-send-message/#创建应用程序
登录您的SAP云平台试用帐户,点击SAP Business Application Studio。
如果您是第一次启动时,它将提示您创建一个Dev工作区。创建一个工作区并确保它正在运行。
在欢迎选项卡中,单击从模板创建项目
选择CAP项目并单击开始。然后输入一个项目名为capsender.
这将创建一个具有不同CAP模块(如db、srv)的空项目
作为第一步,让我们准备项目依赖项。单击文件包.json
CAP已经生成了一些强制标签。请添加以下依赖项。
和应用程序依赖项
您将在下面找到完整的代码示例。
这些依赖项将告诉构建周期添加企业消息服务作为绑定,并且在部署到cloud foundry上时还初始化xb msg amqp droplet。
因为我们只创建一个要生成的服务消息,我们不需要任何持久性,因此此应用程序中不需要db模块。
在名为sender的srv文件夹下创建一个新文件-服务.cds
添加下面的代码。
这个文件创建了一个名为SenderService的服务,函数是send()。但是这个功能还没有实现。这将在下面的文件中实现。
在名为sender的srv文件夹下创建一个新文件-服务.js
这个特殊的代码基本上是发送一个带有当前日期和时间的消息到一个名为customer/created的队列
就是这样,这就是向SAP Enterprise Messaging service发送消息所需的全部内容,云服务器高配,该服务具有我们已配置的队列。
让我们添加MTA.yaml公司文件并生成。
要添加MTA文件,右键单击项目capsender并单击"在终端中打开"。
输入命令CDS ADD MTA
这将添加一个MTA.YAML公司可用于构建我们的应用程序的文件。
现在右键单击MTA.YAML公司文件并选择Build MTA.
这将生成包含.mtar文件的MTA\u存档文件夹,这些文件将用于在云上部署foundry.
展开文件夹mta\U archives并右键单击capsender-srv.mtar公司文件并选择Deploy MTA Archive.
验证cloud foundry空间以确保实例正在运行。
有时部署无法绑定企业消息传递实例,在这种情况下,手动绑定服务并重新启动实例。
测试服务
在浏览器中打开应用程序URL,您应该可以看到如下目录。
单击sender并将send()方法添加到URL。您应该能够得到下面的响应。
现在,让我们检查消息是否已发送到队列。打开企业消息服务实例的仪表板并单击队列。
在这里您应该可以看到针对客户/创建的队列的消息。
现在我们已经准备好了发送者应用程序。我们可以创建接收器和编排器应用程序来订阅此队列。
您可以在这里的第2部分中找到详细信息。
,腾讯云赚佣金当前网址:http://www.vmchk.com/app/51971.html