Kafka 壞了? 談 Salesforce CDC (Change Data Capture) 壞掉的原因、預防與補救

我們有一個下游系統透過 kafka 的機制在即時 sync Salesforce 的 oportunity。 某一天,運作地好好的 integration 突然壞了,下游突然收不到資料了。

sync 失敗可能原因

以我們 Salesforce Enterprise Edition的方案為例, 每 24 小時的 event 上限為 25,000。以日常正常用量來說大致夠用。

但若有人一次更新大批資料,則有超量風險。一但超量,subscriber 將收到 error: 403::Organization total events daily limit exceeded,event 將無法送至 kafka。

 

Event Usage 可由此查看

SELECT EndDate,Name,StartDate,Value FROM PlatformEventUsageMetric WHERE EndDate = last_n_days:60 ORDER BY EndDate DESC NULLS FIRST


查詢過去一天有多少 opportunity 遭到 update/create:
workbench query:

SELECT Id,LastModifiedById,LastModifiedDate,Name,OwnerId FROM Opportunity WHERE LastModifiedDate = last_n_days:2 ORDER BY LastModifiedDate DESC NULLS FIRST

如何減少失敗的影響

事前預防

提醒系統管理員,不得突發性大規模更新 opportunity。
若需大規模更新,建議

  • 分成小批量,在不同時間點更新。

  • 排定在週末非工作日更新

  • 更新後密切監控 kafka 運行狀況

    • Grafana Kafka Overview

    • k8s / k9s

事中監測

建立自動監控機制,一旦發生超量風險,立刻發通知給 Salesforce 系統管理員

事後修補

手動執行 produce event job。

且需反覆手動執行,直至過去 24 小時內之 usage 回穩。

 

 

參考資料

留言

這個網誌中的熱門文章

Salesforce證照考試心得 (Administrator and Advanced Administrator)

ISC2 CC (Certified in Cybersecurity Certification) 考試心得