Политика повторной загрузки Spring Boot JPA PostgreSQL - PullRequest
0 голосов
/ 28 марта 2019

У меня есть приложение с загрузочной пружиной, которое имеет API POST REST, который вставляет данные в Postgresql с использованием JPA и Hikari. Поскольку количество запросов Post велико, я планирую реализовать Spring Retry для встроенных методов JPA, таких как save (), saveAll (), findAll () и т. Д.,

Мой вопрос заключается в том, является ли хорошей идеей повторная попытка, если произошел тайм-аут / сбой соединения с базой данных? (или же) Spring-Boot или JPA уже делает это? если да, пожалуйста, поделитесь ссылкой, которая упоминает это.

1 Ответ

1 голос
/ 28 марта 2019

Ответственность за правильное соединение лежит на пуле соединений, который постоянно контролирует доступные соединения. Перед передачей соединения вам HikariCP проверяет соединение, используя либо тестовый запрос, либо API (в случае, если драйвер jdbc совместим с JDBC4). Подробнее здесь и здесь .

Однако, как только соединение будет передано и если во время выполнения запроса возникнет проблема с сетью, клиент получит Execption. Повторите ли это тогда хорошая идея? Я думаю, что для запросов на чтение это должно быть хорошо, но для запросов, данные изменений которых могут быть не очень хорошими. Например, ваша вставка прошла успешно, но перед тем, как клиент получит подтверждение подтверждения транзакции, возникает проблема с сетью. Итак, теперь данные вставлены. Если вы попытаетесь снова, вы в конечном итоге вставите дважды.

...