与外部系统集成

本页介绍集成外部系统时Journey Orchestration提供的不同防护以及最佳实践:如何使用上限API优化对外部系统的保护,如何配置历程超时以及重试的工作方式。

Journey Orchestration允许您通过自定义数据源和自定义操作配置与外部系统的连接。 例如,这允许您使用来自外部预订系统的数据扩充您的历程,或使用第三方系统(如Epsilon或Facebook)发送消息。

在集成外部系统时,您可能会遇到一些问题,系统可能运行缓慢、可能停止响应,或者可能无法处理较大的卷。 Journey Orchestration提供了多个护栏,以防止系统过载。

所有外部系统在性能方面都各不相同。 您需要根据用例调整配置。

当Journey Orchestration执行对外部API的调用时,将按照以下方式执行技术防护:

  1. 应用上限规则:如果达到最大速率,则会丢弃剩余的调用。

  2. 超时并重试:如果满足上限规则,Journey Orchestration会尝试执行调用,直到达到超时持续时间的结束。

上限

内置上限API提供了上游技术护栏,可帮助保护外部系统。

对于外部数据源,每秒的最大调用数设置为15。 如果呼叫数超过每秒15次,则会丢弃剩余的呼叫。 您可以提高专用外部数据源的此限制。 联系Adobe以在中包含端允许列表点。 对于公共外部数据源,这是不可能的。

对于自定义操作,您需要评估外部API的容量。 例如,如果Journey Optimizer每秒发送1000个调用,而您的系统每秒只能支持100个调用,则您需要定义上限规则,以便您的系统不会饱和。

在沙盒级别为特定端点(称为的URL)定义上限规则。 在运行时,Journey Orchestration会验证是否定义了上限规则,并在调用该端点期间应用定义的速率。 如果调用数超过定义的速率,则剩余的调用将被丢弃,并在报告中计为错误。

上限规则特定于一个端点,但全局应用于沙盒的所有历程。 这意味着在沙盒的所有历程之间共享上限插槽。

例如,假设您为外部系统定义了每秒100次调用的上限规则。 在10个不同历程中,系统由自定义操作调用。 如果一个历程每秒收到200个呼叫,则它将使用100个可用插槽,并放弃剩余的100个插槽。 由于超出了最大速率,其他9个历程将没有任何插槽。 此粒度有助于保护外部系统免遭过载和崩溃。

要了解有关上限API以及如何配置上限规则的更多信息,请参阅此页面

超时和重试

如果满足上限规则,则应用超时规则。

在每个历程中,您可以定义超时持续时间。 这允许您在调用外部系统时设置最大持续时间。 在历程的属性中配置超时持续时间。 请参见此页面

此超时对所有外部调用(自定义操作和自定义数据源中的外部API调用)都是全局的。 默认情况下,此值设置为5秒。

在定义的超时时间段内,Journey Orchestration会尝试调用外部系统。 首次调用后,最多可执行三次重试,直到达到超时持续时间的结束。 无法更改重试次数。

每次重试都使用一个插槽。 如果您的每秒100个调用的上限为,并且每个调用都需要两次重试,则速率会降至每秒30个调用(每个调用使用3个插槽:第一次调用和两次重试)。

超时持续时间值取决于用例。 如果要快速发送消息(例如当客户端进入商店时),则不希望设置长超时。 此外,超时时间越长,将越多的项目放入队列中。 这会对性能产生很大影响。 如果Journey Orchestration每秒执行1000次调用,则保留5或15秒的数据可能会迅速压垮系统。

以超时5秒为例。

  • 第一次调用持续时间不到5秒:调用成功,则不会执行重试。
  • 第一次调用会持续5秒:调用已取消,且不会重试。 在报表中,此值会被计为超时错误。
  • 第一次调用在2秒后失败(外部系统返回错误):如果有上限插槽可用,则重试的时间还剩3秒。
    • 如果在5秒结束前三次重试中有一次成功,则会执行调用,并且没有错误。
    • 如果在重试期间达到超时时长的结束,则调用将被取消,并在报表中计为超时错误。

常见问题

如何配置上限规则?是否有默认上限规则?

默认情况下,没有上限规则。 上限规则是在沙盒级别使用上限API为特定端点(称为的URL)定义的。 请参阅此部分此页面

执行了多少次重试?我是否可以更改重试次数或定义两次重试之间的最短等待时间?

对于给定的调用,在首次调用后最多可执行三次重试,直到达到超时持续时间的结束。 无法更改重试次数和每次重试间隔的时间。 请参阅此小节

在哪里可以配置超时?是否有最大值?

在每个历程中,您可以定义超时持续时间。 在历程的属性中配置超时持续时间。 超时持续时间必须介于1秒到30秒之间。 请参阅此部分此页面

在此页面上