最大限度地减少 Salesforce Streaming API 和 Heroku Connect 之间的延迟
Posted
技术标签:
【中文标题】最大限度地减少 Salesforce Streaming API 和 Heroku Connect 之间的延迟【英文标题】:Minimise delay between Salesforce Streaming API and Heroku Connect 【发布时间】:2018-04-01 12:23:18 【问题描述】:我目前有一个在 Heroku 中运行的应用程序 (node.js),使用 Heroku Connect 连接到 Salesforce 以读取/写入数据。
Heroku Connect 本质上具有来自 Salesforce 的选定数据的副本,该副本通过 Streaming API 提取。
我的应用程序立即写入 HC PostgreSQL 数据库,该数据库立即写入 Salesforce。
这会添加一个唯一的参考字段,该字段也会在 Salesforce 中即时生成,但是此信息反馈到 Heroku Connect 时存在延迟。
我不确定延迟是否是由于流 API 或 Heroku Connect,但我不确定如何最小化/消除此延迟,以便 Heroku Connect 立即使用新生成的字段进行更新。
请看下图,显示什么是即时的以及发生延迟的位置:
【问题讨论】:
【参考方案1】:Salesforce 中的出站流是异步的……这意味着延迟是正常的。请阅读“Integration Patterns and Practices”了解更多详情。我不确定他们描述的哪些策略适合您的需求,但至少您有某种参考。希望对您有所帮助。
【讨论】:
【参考方案2】:我认为,这种延迟的原因可能是套接字和重新连接超时(阅读有关 Streaming API 超时的更多信息here)。如果您的 Salesforce 解决方案不经常生成事件,则客户端可能会失去连接并且每次都需要重新连接,并且您观察到可能会浪费时间。可能,这种情况的解决方案是在 Salesforce 端生成虚假事件(没有真实数据)以保持连接,但您需要关心达到另一个 Streaming API 限制(例如,24 小时内的事件数量)。有关限制的更多详细信息,请参阅Salesforce documentation。
这只是一个想法,您需要进行一些基准测试并收集一些统计数据,以便更好地了解 Salesforce 和 Heroku Connect 在您的案例中究竟是如何交互的。
【讨论】:
以上是关于最大限度地减少 Salesforce Streaming API 和 Heroku Connect 之间的延迟的主要内容,如果未能解决你的问题,请参考以下文章