Перезапуск HikariCP с помощью Spring Cloud Config - PullRequest
0 голосов
/ 16 января 2019

Я недавно настроил свое приложение для использования Spring Cloud Config с Github в качестве хранилища конфигурации.

  • Spring Boot - 2.1.1.RELEASE
  • Зависимости Spring Cloud - Гринвич.RC2

Мое приложение использует практически все из коробки. Я только что настроил базу данных в application.yml, и у меня есть автоконфигурации HikariCP, делающие магию в фоновом режиме.

Я обновляю свои приложения, используя это задание, которое вызывает метод refresh() для RefreshEndpoint .

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.endpoint.RefreshEndpoint;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@EnableScheduling
@Component
public class ConfigRefreshJob {

    private static final Logger LOG = LoggerFactory.getLogger(ConfigRefreshJob.class);

    private static final int ONE_MINUTE = 60 * 1000;

    private final RefreshEndpoint refreshEndpoint;

    @Autowired
    public ConfigRefreshJob(final RefreshEndpoint refreshEndpoint) {
        this.refreshEndpoint = refreshEndpoint;
    }

    @Scheduled(fixedDelay = ONE_MINUTE)
    public void refreshConfigs() {
        LOG.info("Refreshing Configurations - {}", refreshEndpoint.refresh());
    }
}

Кажется, все работает хорошо, но я вижу следующие журналы каждый раз, когда обновляю конфигурации. В этих журналах говорится, что пул HikariCP отключается и запускается при каждом обновлении.

2019-01-16 18:54:55.817  INFO 14 --- [taskScheduler-9] o.s.b.SpringApplication       : Started application in 0.155 seconds (JVM running for 144.646)
2019-01-16 18:54:55.828  INFO 14 --- [taskScheduler-9] c.z.h.HikariDataSource        : HikariPool-1555 - Shutdown initiated...
2019-01-16 18:54:55.828  INFO 14 --- [taskScheduler-9] c.z.h.HikariDataSource        : HikariPool-1555 - Shutdown completed.
2019-01-16 18:54:55.828  INFO 14 --- [taskScheduler-9] c.d.ConfigRefreshJob          : Refreshing Configurations - []
2019-01-16 18:55:03.094  INFO 14 --- [  XNIO-1 task-5] c.z.h.HikariDataSource        : HikariPool-1556 - Starting...
2019-01-16 18:55:03.123  INFO 14 --- [  XNIO-1 task-5] c.z.h.HikariDataSource        : HikariPool-1556 - Start completed.

Если посмотреть на время этих журналов, потребуется около 8 секунд для повторной настройки HikariCP.

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

  1. При перезапуске HikariCP проблемы с загрузкой приложения увеличиваются?

  2. Если перезапуск может вызвать проблемы, есть ли способ не обновлять HikariCP?

1 Ответ

0 голосов
/ 18 января 2019

HikariCP по умолчанию обновляется, потому что в него внесено изменение, которое запечатывает конфигурацию после запуска пула.

Так отключите это, установите spring.cloud.refresh.refreshables в пустой набор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...