Debezium — 它抓得住資料的改變

現代很多應用(application)都很複雜,通常是資料庫裡的資料有變動,就需要觸發一連串的相依動作,光舉一個登入為例,就可能需要 1 更新資料庫, 2 寫日誌(log), 3 送 tracking events, 4 送數據到 data dashboard 等等,越龐大的系統就越多事情要做。

通常規模小的系統不外乎是通通寫在 API 裡,全部做完也不會花太多時間,但缺點就是程式碼全部擠在一起,複雜性上升,易維護性下降。

old-way-api.png

要解決這個問題,可以把每個功能都切開,變成多個 workers, 持續偵測資料庫裡的資料是否有變化,偵測到變化之後就執行自己應該執行的工作,如此一來 API 就可以專注在維護資料的更新邏輯,剩下的部分就交給 workers 各自處理,也不怕影響 API 穩定性。

debezium-arch.png

p.s. 也有人用它來造 data pipeline, 每個 worker 負責各自的數據處理

持續偵測資料庫裡的資料變化這件事,現在也不需要自己造輪子了,可以交給 Debezium 。

Debezium 支援 MySQL, PostgreSQL, MongoDB, DB2, SQL Server 等資料庫,而它其實就是架構在 Apache Kafka 之上的應用,基本上不用太擔心效能與穩定性問題,開發者可以更專注在業務邏輯的開發上。

目前 Reddit, Shopify, Tokopedia, Ubisoft, Vimeo 等公司都有用到 Debezium, 如果有興趣的話可以玩看看, Debezium 有將 tutorial 包裝成 Docker, 可以輕鬆架好環境進行學習。

Debezium

Facebook Threads X

對抗久坐職業傷害

研究指出每天增加 2 小時坐著的時間,會增加大腸癌、心臟疾病、肺癌的風險,也造成肩頸、腰背疼痛等常見問題。

然而對抗這些問題,卻只需要工作時定期休息跟伸展身體即可!

你想輕鬆改變現狀嗎?試試看我們的 PomodoRoll 番茄鐘吧! PomodoRoll 番茄鐘會根據你所設定的專注時間,定期建議你 1 項辦公族適用的伸展運動,幫助你打敗久坐所帶來的傷害!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!