簡體   English   中英

Spring 多個數據庫(數據源)之間的引導切換

[英]Spring Boot switch between multiple databases (data-sources)

我有一個 spring 啟動 REST API 應用程序,用於具有 2 個不同設置(= 2 個不同 jar)的項目。 兩者都需要實現,但我不知道如何做到這一點或最好的方法是什么。

兩種設置都需要與在線數據庫(在服務器上;AWS)建立連接,並與離線或本地數據庫(在機器/PC 本身上運行)建立連接。 兩種設置之間的不同之處在於離線或本地連接。


設置 1:
當應用程序啟動時,它需要連接到在線數據庫。 當發生錯誤或與在線數據庫的連接丟失時,需要連接到離線/本地數據庫。

發生錯誤或連接丟失后,它不需要重新連接在線數據庫。

設置 2:
當應用程序啟動時,它需要連接到在線和離線數據庫。 所以當用戶向REST API發帖時,在線和離線數據庫都需要更新(除非發生錯誤或與在線數據庫的連接丟失)。 如果用戶只是做一個get請求,最好從在線數據庫中獲取數據,除非發生錯誤或者與在線數據庫的連接丟失,否則可以使用離線數據庫。

發生錯誤或連接丟失后,它不需要重新連接在線數據庫,但在此設置中會很好。 再次建立連接后同步數據也不是必需的(但可能是一個不錯的功能)。


我看過 一個類似的帖子,其中解決方案是使用 ha-jdbc 但它是一個舊帖子... Maven 只是在我嘗試將它添加到我的 pom.xml 文件時找不到依賴項。

經過更多的搜索和嘗試,我能夠將 ha-jdbc 添加到我的 pom.xml 中。 我必須做的是添加一個包含 ha-jdbc 的存儲庫。

 <project> <repositories> <repository> <id>jbossrepository</id> <name>jbossrepository</name> <url>https://repository.jboss.org/nexus/content/repositories/thirdparty-releases/</url> </repository> </repositories> <dependency> <dependency> <groupId>net.sf.ha-jdbc</groupId> <artifactId>ha-jdbc</artifactId> <version>3.0.3</version> </dependency> </dependency> </project>

然而,看看我是否可以讓它工作,如果它是我正在尋找的......
ha-jdbc 不值得嘗試,一個接一個的錯誤或問題,它也只是舊的 java...


版本:
- java:1.8
- org.springframework.boot(spring-boot-starter-parent):2.1.8.RELEASE
- 數據庫(在線和離線):PostgreSQL 11.5

看看這個示例代碼 在那里您可以找到已經實施的有效解決方案。 它背后的邏輯是EnableJpaRepositories ,它基於包( basePackages )啟用它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM