本页介绍集成外部系统时Journey Orchestration提供的不同防护以及最佳实践:如何使用上限API优化对外部系统的保护,如何配置历程超时以及重试的工作方式。
Journey Orchestration允许您通过自定义数据源和自定义操作配置与外部系统的连接。 例如,这允许您使用来自外部预订系统的数据扩充您的历程,或使用第三方系统(如Epsilon或Facebook)发送消息。
在集成外部系统时,您可能会遇到一些问题,系统可能运行缓慢、可能停止响应,或者可能无法处理较大的卷。 Journey Orchestration提供了多个护栏,以防止系统过载。
所有外部系统在性能方面都各不相同。 您需要根据用例调整配置。
当Journey Orchestration执行对外部API的调用时,将按照以下方式执行技术防护:
应用上限规则:如果达到最大速率,则会丢弃剩余的调用。
超时并重试:如果满足上限规则,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秒为例。
如何配置上限规则? 是否有默认上限规则?
默认情况下,没有上限规则。 上限规则是在沙盒级别使用上限API为特定端点(称为的URL)定义的。 请参阅 此部分 和 本页.
执行了多少次重试? 我是否可以更改重试次数或定义两次重试之间的最短等待时间?
对于给定的调用,在首次调用后最多可执行三次重试,直到达到超时持续时间的结束。 无法更改重试次数和每次重试间隔的时间。 请参阅此小节。
在哪里可以配置超时? 有最大值吗?
在每个历程中,您可以定义超时持续时间。 在历程的属性中配置超时持续时间。 超时持续时间必须介于1秒到30秒之间。 请参阅 此部分 和 本页.