Platform Events Basics_理解事件驱动的软件体系结构

学习目标

  • 列出基于事件的软件体系结构的组件。
  • 解释事件驱动软件体系结构的好处。
  • 描述平台事件功能的用例。
  • 描述平台事件的特征。

开始这个模块前

我们知道你渴望开始!但是,在您开始学习本模块之前,您应该熟悉一些概念,以便能够完成本模块。

本模块向您展示如何使用Apex、REST API、流和流程发布平台事件。此外,您还可以使用Apex触发器、流、进程、Lightning组件和Comet工具订阅平台事件。要理解本模块,您应该至少熟悉其中一种技术。为了能够执行本模块中的实际操作挑战,您应该了解Apex触发器。这是一个学习Apex的小径和模块列表。

  • 如果您事先没有面向对象编程语言的知识,可以尝试以下方法:构建Apex编码技能训练
  • 如果您熟悉面向对象编程语言,请查看以下模块:Apex基础与数据库、Apex触发器和Apex测试。

此外,熟悉流式API的概念对本模块也有帮助。如果尚未完成,请在使用此模块之前完成Lightning Platform API基础模块。

理解事件驱动的软件体系结构

您的订单系统是否已发货?您的打印机墨盒需要更换吗?无论您希望得到什么样的通知,Salesforce enterprise messaging platform都可以在Salesforce内部和外部来源提供安全、可扩展的自定义通知。通过平台事件,您可以监视您的系统并将更改传达给其他系统。

基于事件的通信范例围绕发布者-订阅者模型展开——发送者广播一个或多个接收者捕获的消息。这就像无线电传输——发射塔发射无线电信号,而接收器如果调谐到正确的频率,就会得到信号。

与无线电传输非常相似,基于事件的通信从发送方流向接收方。无论接收者是否在监听,事件都会被发送,而接收者在接收到事件时不会进行确认。基于事件的通信是实时的,或者更准确地说,是近实时的。无线电波以光速传播,但基于事件的软件和硬件系统通常有一些延迟。

在Lightning Platform API基础模块中,我们使用海盗船上的雷达来表示事件检测。这种类比适用于基于Salesforce记录变化的PushTopic事件流。这种通信模型只需要一个订户。但对于平台事件,通信有两方:发送方和接收方。它们是事件驱动体系结构的两个组件。

事件驱动系统的组件

在我们进一步讨论之前,让我们先定义一些术语。

Event
在业务流程中有意义的状态变化。例如,下订单是一个有意义的事件,因为订单履行中心希望在处理订单之前收到通知。

Event message
包含有关事件的数据的消息。也称为事件通知。例如,事件消息可以是关于订单放置的通知,其中包含有关订单的信息。

Event producer
事件消息的发布者。例如,订单放置应用程序。

Event channel
事件生产者发送事件消息,事件消费者读取这些消息的事件流。对于平台事件,通道用于一个平台事件,并将该平台事件的所有事件消息分组。

Event consumer
从通道接收消息的通道的订户。例如,通知新订单的订单履行应用程序。

Event bus
使用发布-订阅模型启用事件流的通信和存储服务。事件总线允许在保留窗口期间的任何时间检索存储的事件消息。

下图说明了基于事件的软件体系结构。
在这里插入图片描述

与请求-响应通信模型不同,基于事件驱动模型构建的软件体系结构将事件生产者与事件消费者分离,从而简化连接系统中的通信模型。无需向服务器发出请求即可获取有关特定状态的信息。相反,系统订阅事件通道,并在出现新状态时收到通知。任何数量的使用者都可以接收相同的事件并作出反应。当事件发生时,系统会获取此信息,并能近实时地对其作出反应。除了消息内容的语义之外,发送事件的系统和接收事件的其他系统彼此之间没有依赖关系。
Salesforce enterprise messaging platform提供了事件驱动软件体系结构的优点。平台事件是应用程序发送和接收的事件消息。它们简化了传达更改和响应更改的过程,而无需编写复杂的逻辑。发布者和订阅者通过平台事件相互通信。一个或多个订阅者可以侦听同一事件并执行操作。

比如说,一家名为“云新闻”的通讯社向订阅的客户发送活动,提供有关山区度假目的地交通和路况的最新突发新闻。这些事件的内容不仅是新闻本身,还包括相关的细节,如某条新闻是否紧急以及事件发生的地点。订阅者可以接收这些事件,并根据新闻的紧迫性决定采取什么行动。

所有这些听起来都不错,但是当您可以使用平台事件时,有哪些真实案例?当然,平台事件的使用并不局限于新闻机构。下面是一些有用的应用程序。

何时使用平台事件的示例

让我们来看几个使用平台事件的业务场景。在这些场景中,Salesforce和外部系统通过平台事件消息进行通信。在第一个场景中,Salesforce中的应用程序将产品发货订单通知外部订单履行应用程序。在第二个场景中,外部产品应用程序通知Salesforce商品退货。最后一个场景显示了如何通过使用触发器在Salesforce中使用事件消息。

平台到外部应用程序:供应商应用程序中的订单履行

当Salesforce中赢得的商机结束时,您的公司就赢得了与客户的交易。假设您使用供应商来装运与opportunity关联的产品。每个供应商都有一个外部应用程序,用于处理特定产品的发货订单。外部应用程序侦听平台事件。商机关闭时,触发并发布平台事件消息,该触发是Salesforce中产品订单应用程序的一部分。每个供应商应用程序都会收到事件通知。负责装运特定产品的供应商创建装运。
在这里插入图片描述

外部应用到平台应用:在Salesforce中处理商品退货

假设有人想将购买的商品退回给供应商。外部系统将商品退货请求发送给Salesforce进行处理。外部系统发布平台事件,提醒Salesforce退货。Salesforce中的事件侦听器(触发器)接收事件并执行一些操作。例如,触发器可能会提醒销售代表退货,并向客户发送确认电子邮件。
在这里插入图片描述

平台到平台:重新分配潜在客户记录

在Salesforce中分配潜在客户时,潜在客户触发器将触发并检查与潜在客户所有者相关的未结商机和案例。触发器根据相关记录发布Salesforce应用程序接收的事件。根据事件信息,应用程序重新分配潜在客户并创建聊天帖子。
在这里插入图片描述

平台事件特征

现在您已经了解了何时使用平台事件,让我们深入了解它们的组件和特性。

您可以定义平台事件包含的自定义数据。与自定义对象一样,您可以在Salesforce中定义平台事件。通过为平台事件定义命名并添加自定义字段,可以创建平台事件定义。以下是云通讯社新闻事件自定义字段的示例定义。

字段标签/名称字段API名称字段类型
LocationLocation__cText Length: 100
UrgentUrgent__cCheckbox
News ContentNews_Content__cText Area (Long)

平台事件和Salesforce对象

平台事件是一种特殊的Salesforce实体,在许多方面类似于Salesforce对象。事件消息是平台事件的实例,类似于记录是Salesforce对象的实例。与记录不同,您不能更新或删除事件消息或在Salesforce用户界面中查看它们。
您可以为平台事件设置读取和创建权限。您可以在配置文件或权限集中向用户授予权限。

在本机和外部应用程序中使用平台事件

平台事件支持Salesforce内部以及与外部应用程序之间的事件消息流。Salesforce平台上的应用程序使用Apex方法发布事件,使用Apex触发器或empApi Lightning组件消费事件。作为代码的替代方案,您可以使用声明性工具(如Process Builder和Flow Builder)发布事件。外部应用程序使用sObject API发布事件,并使用Comed消费事件。正如您所看到的,选择如何使用平台事件有很大的灵活性!

平台事件和其他流媒体事件之间的差异

其他流媒体活动呢?其他事件包括PushTopic和泛型事件。使用PushTopic事件,客户机将根据预定义的查询接收有关Salesforce记录更改的消息。使用通用事件,您可以发送和接收不一定绑定到Salesforce记录的任意消息内容(有效负载)。平台事件类似于一般事件,但提供了更强大的自定义功能。通过平台事件,您可以发布任何自定义数据。您可以在粒度级别将事件数据的模式定义为类型化字段。此外,您还可以在本机Salesforce平台应用程序和外部应用程序中使用平台事件。在以下情况下使用平台事件:

  • 发送和接收具有预定义架构的自定义事件数据
  • 在Apex中发布或订阅事件
  • 在Salesforce平台内外发布和处理事件的灵活性

此表比较了一般事件和平台事件的功能。

特征一般事件平台事件
将事件架构定义为类型化字段
包括用户定义的有效载荷
通过一个或多个API发布事件
通过Apex发布事件
通过CometD订阅
通过Apex触发器订阅
使用Process Builder和Flow Builder以声明方式发布

有关更多事件类型的比较,请参阅《流式API开发人员指南》中的流式事件功能。

参考:
salesforce原文档连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值