Spring Boot переключение между несколькими базами данных (источники данных) - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть приложение REST API с весенней загрузкой для проекта с 2 разными настройками (= 2 разных банок). Оба должны быть реализованы, но я понятия не имею, как это сделать или как лучше всего это сделать.

Обе установки должны иметь соединение с онлайн-базой данных (на сервере; AWS) исоединение с автономной или локальной базой данных (работающей на самой машине / ПК). Это автономное или локальное соединение, которое отличается в обеих настройках.


Настройка 1:
Когда приложение запущено, ему необходимо подключиться к онлайн-базе данных. В случае возникновения ошибки или потери соединения с онлайн-базой данных необходимо подключиться к автономной / локальной базе данных.

Не требуется, чтобы она повторно подключалась к онлайн-базе данных после возникновения ошибки или соединениябыл потерян.

Настройка 2:
Когда приложение запущено, ему необходимо подключиться как к онлайн, так и к автономной базе данных. Поэтому, когда пользователь отправляет сообщение в API REST, необходимо обновить как онлайн-базу данных, так и автономную базу данных (если не происходит ошибка или потеря подключения к онлайн-базе данных). Если пользователь просто выполняет запрос на получение, предпочтительно получить данные из онлайн-базы данных, если только не происходит ошибка или соединение с онлайн-базой данных потеряно, чем он может использовать автономную базу данных.

ItНе требуется, чтобы он восстанавливал соединение с онлайн-базой данных после возникновения ошибки или потери соединения, но в этой настройке было бы неплохо. Синхронизация данных после повторного установления соединения также не требуется (но, возможно, это было бы неплохо).


Я видел аналогичный пост , гдеРешением было использование 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

1 Ответ

0 голосов
/ 05 ноября 2019

Посмотрите этот пример кода . Там вы можете найти уже реализованное рабочее решение. Логика, стоящая за ним, - EnableJpaRepositories, что позволяет использовать ее на основе пакетов (basePackages)

...