使用自動化過程將數據從一個數據庫複製到另一個數據庫伺服器
我有一個場景,
我有兩個數據庫伺服器在兩台不同的機器上執行。
我必須建構一個自動化流程,通過該流程,數據將在第一次插入時從一個數據庫複製到另一個數據庫伺服器。
我的應用程序使用 spring-hibernate 和 mysql DB。
我可以選擇 DB 端或 spring-hibernate 端方法。
可以用rabbitMQ做到這一點嗎?
我可以選擇在每次插入時呼叫自動化過程,或者作為批處理過程或使用隊列。以下連結中提到了一些答案,但我不清楚
2.https://stackoverflow.com/questions/3821897/replicating-data-from-one-db-to-another
任何幫助將不勝感激
不要試圖讓它變得比實際更難。複製機制內置 mySQL 將是最好的。Google有很多教程,例如:
https://fromdual.com/how_to_setup_mysql_master-slave_replication
基本上,您需要主從配置。
以下是我對此的看法,
- 通過 DB 端,
如果您不想將部署方面與您的應用程序相結合,那麼這是最好的一個。系統管理員將承擔您的這些負擔。他們將設置主從設置,您的應用程序將無縫訪問數據庫。
- 春天——休眠
通過這種方式,您可以使用攔截器並將所有查詢發送到複製機器。但這也會降低你的應用程序的性能,所以在進入這個之前你必須做很多事情,如果在復製過程中出現任何問題,那麼你的應用程序事務也會受到影響。所以在設計時需要更加謹慎。
- 使用 Hibernate 攔截器組合分離外部作業:
您可以設計一些外部工作者管理器類型的非同步任務,並將您的複製作業分派給這些工作者。為了更好的性能、可維護性和控制,您還必須維護某種批次。因此,您可以從那裡將修改後的實體維護到單獨的隊列(可能是 redis / rappitMQ )中,您的外部作業將負責複製過程。因此,您的應用程序從負擔中解放出來。