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 回穩。 參考資料 Platform Event Allocations Change Data Capture (CDC...