как ограничить соединение с базой данных, созданное приложением весенней загрузки, работающим с микросервисами - PullRequest
0 голосов
/ 20 октября 2019

Я работаю над своим школьным проектом, чтобы создать приложение с архитектурой microService (с maven и весенней загрузкой JPA), которое я использую: aws RDS (максимальное соединение с БД 66, и это вызвало мою проблему) aws ec2-instance freeУровень у меня 3 микросервиса: работник, зарплата и отпуск. Однако, когда работало только 3 микро сервиса, мое соединение с БД достигло 40+. Я не могу понять, как ограничить количество соединений с БД, которые может создать служба.

После некоторых исследований я столкнулся с термином «пул соединений», поэтому я попытался настроить пул соединений Tomcat.

это конфигурация (я сделал и то, и другое), но она не работает, правильно ли я скажу, что если конфигурация верна, мое приложение будет устанавливать только 5 активных подключений?

spring.datasource.tomcat.initial-size=5
spring.datasource.tomcat.max-wait=20000
spring.datasource.tomcat.max-active=5
spring.datasource.tomcat.max-idle=5
spring.datasource.tomcat.min-idle=1
spring.datasource.tomcat.default-auto-commit=true   

этокод для запроса

public interface EmployeeRepository extends JpaRepository<Employee, Integer> {
    @Query(
            value = "select * from itsa.Employee;",
            nativeQuery = true)
    List<Employee> findAllEmployee();

    @Query(
            value = "SELECT * FROM Employee where id = :id",
            nativeQuery = true)
    List<Employee> findEmp(@Param("id") int id);

1 Ответ

0 голосов
/ 21 октября 2019

CP по умолчанию при загрузке Spring - HikariCP. как только вы включите spring-boot-starter-data-jpa в pom.xml, HikariCP будет настроен для вас со значениями по умолчанию.

если вы хотите, чтобы ваша конфигурация вступила в силу, вам нужно исключить HikariCP ивключает в себя tomcat-cp. для этого вам нужно внести следующие изменения в ваш pom.xml.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <exclusions>
        <exclusion>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-jdbc</artifactId>
    <version>9.0.10</version>
</dependency>

Надеюсь, это поможет решить вашу проблему.

...