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) 考試心得

Syntax Reference 常用語法備忘: 如何使用SFDX Deploy / How to use SFDX to deploy Apex Code and Run Specific Test Class