与外部系统集成 external-systems
本页介绍Journey Optimizer在集成外部系统时提供的各种护栏以及最佳实践:如何使用上限API优化外部系统的保护、如何配置历程超时以及重试的工作方式。
借助 Journey Optimizer,您可以通过自定义数据源和自定义操作配置与外部系统的连接。例如,您可以使用来自外部预订系统的数据扩充您的历程,或使用第三方系统(如Epsilon或Facebook)发送消息。
在集成外部系统时,可能会遇到几个问题:系统可能变慢、停止响应,或者可能无法处理较大的卷。 Journey Optimizer提供了多个护栏以保护您的系统免受过载。
所有外部系统在性能方面均不同。 您需要根据用例调整配置。
当Journey Optimizer执行对外部API的调用时,技术护栏将按如下方式执行:
-
应用上限或限制规则:如果达到最大速率,剩余呼叫将被丢弃或排队。
-
超时并重试:如果达到上限或限制规则,Journey Optimizer将尝试执行调用,直到达到超时持续时间结束。
API上限和限制 capping
关于上限和限制API
在配置数据源或操作时,您需要建立与系统的连接,以检索要在历程中使用的其他信息,或者发送消息或 API 调用。
历程 API 支持每秒最多 5000 个事件,但某些外部系统或 API 的吞吐量可能不同。要防止这些系统过载,您可以使用 上限 和 限制 API来限制每秒发送的事件数。
每次按历程执行 API 调用时,它都会通过 API 引擎。如果达到API中设置的限制,则会在使用上限API时拒绝调用,或者排队长达6个小时,然后按照在使用限制API时收到的顺序尽快处理调用。
例如,假设您为外部系统定义了每秒200次调用的上限或限制规则。 在 10 个不同历程中,系统由自定义操作调用。如果一个历程每秒收到 300 个调用,则将使用 200 个可用的位置,并丢弃剩余的 100 个调用或将它们排入队列。由于超出了最大使用率,因此其他 9 个历程将没有任何位置。此粒度有助于避免使外部系统出现过载和崩溃。
有关如何使用API的更多信息,请参阅以下章节:
Adobe Journey Optimizer API文档中提供了API的详细说明
数据源和自定义操作容量 capacity
对于 外部数据源,每秒的最大调用数限制为 15。如果超出此限制,则会根据所使用的 API,丢弃或排入任何其他调用。联系 Adobe 以将端点包含在允许列表中,这样可以增加专用外部数据源的此限制,但对于公共外部数据源不可以这样操作。* 了解如何配置数据源。
对于 自定义操作,您需要评估外部 API 的容量。例如,如果 Journey Optimizer 每秒发送 1000 个调用,而您的系统每秒只能支持 200 个调用,则需要定义上限或限制配置,以便系统不会饱和。了解如何配置操作
超时和重试 timeout
如果满足上限或限制规则,则应用超时规则。
在每个历程中,您可以定义超时持续时间。 这允许您在调用外部系统时设置最大持续时间。 超时持续时间在历程的属性中配置。 请参见此页面。
此超时对于所有外部调用(自定义操作和自定义数据源中的外部API调用)都是全局的。 默认情况下,设置为30秒。
在定义的超时持续时间内,Journey Optimizer会尝试调用外部系统。 在第一次调用后,最多可以执行三次重试,直到达到超时持续时间结束为止。 无法更改重试次数。
每次重试使用一个插槽。 如果您的限制为每秒100次调用,并且每个调用需要重试两次,则速率降至每秒30次调用(每个调用使用3个插槽:第一次调用和两次重试)。
超时持续时间值取决于用例。 如果您希望快速发送消息(例如,在客户端进入商店时),则您不希望设置较长的超时。 此外,超时时间越长,放入队列中的项目就越多。 这会极大地影响性能。 如果Journey Optimizer每秒执行1000次调用,则保留5秒或15秒的数据会迅速让系统不堪重负。
我们以5秒的超时为例。
-
第一个调用持续少于5秒:调用成功,不执行重试。
-
第一个调用持续的时间更长5秒:调用被取消并且不会重试。 在报表中将被计为超时错误。
-
第一次调用在2秒后失败(外部系统返回错误):如果存在上限插槽,则重试时间还剩3秒。
- 如果在5秒结束前三次重试均成功,则会执行调用,且不会出现任何错误。
- 如果在重试期间到达超时时长的结尾,则调用会被取消,并在报表中计为超时错误。
常见问题解答 faq
如何配置上限或限制规则? 是否存在默认规则?
要创建上限或限制规则,请参阅此部分。 默认情况下,没有限制规则,但为所有自定义操作、每个主机和每个沙盒定义了1分钟以上300,000次调用的上限限制。 此限制是根据客户使用情况设置的,用于保护自定义操作所针对的外部端点。您必须在基于受众的历程中考虑这一点,相应地定义适当的读取率(使用自定义操作时为 5000 个用户档案/秒)。如果需要,您可以通过我们的上限/限制API定义更大的上限或限制来覆盖此设置。
执行多少次重试? 我可以更改重试次数或定义重试之间的最短等待时间吗?
对于给定的调用,在第一次调用后最多可以执行三次重试,直到达到超时持续时间结束为止。 无法更改重试次数和每次重试之间的时间。 请参阅此小节。
我可以在何处配置超时? 是否存在最大值?
在每个历程中,您可以定义超时持续时间。 超时持续时间在历程的属性中配置。 超时持续时间必须介于1秒和30秒之间。 请参阅此部分和此页面。