最大限度地减少 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 之间的延迟的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用整数类型作为分区键可以最大限度地减少内存使用?

javascript 隐藏文档正文有助于最大限度地减少闪烁

持续唤醒和睡眠以最大限度地减少 Linux 上的功耗?

在标准容器上执行一系列操作时最大限度地减少峰值内存使用

电话和后端连接,如何最大限度地减少黑客攻击

通过基于 Web 的实时音频捕获和广播,最大限度地减少延迟