Последнее значение ZooKeeper не перезагружается без перезапуска сервера

#spring-boot #apache-zookeeper #spring-bean

#весенняя загрузка #apache-zookeeper #spring-bean

Вопрос:

Я использую ZooKeeper с весенней загрузкой. И в файле application.properties я использую следующие свойства, как показано ниже.

 minio.url=${minio.connection-string}
minio.access.key=${minio.accesskey}
 

где значение minio.connection-string и minio.accesskey будут получены из данных ZooKeeper znode. Я использую minio.url и minio.access.введите другой компонент Spring boot, как показано ниже.

 @Configuration
@RefreshScope
public class MinioClientConf
{

    @Value("${minio.url}")
    private String minioUrl;

    @Value("${minio.access.key}")
    private String minioKey;
.
.
 

Когда я запускаю свое приложение spring boot, все работает, но когда я меняю значение узла ZooKeeper, оно не отражается в значении компонента без повторного запуска сервера.
Моя проблема в том, что я хочу перезагрузить последнее значение zookeeper без повторного запуска сервера. Я также пробовал с аннотацией области обновления, но это не сработало.

Комментарии:

1. Убедитесь, что ваш URL-адрес Minio сначала обновил сервер конфигурации. Пожалуйста, проверьте ниже URL, как сначала настроить сервер cloud.spring.io/spring-cloud-config/multi/… . Затем он будет отражать ваши клиенты конфигурации

Ответ №1:

Вместо этого используйте @ConfigurationProperties

 @ConfigurationProperties("minio")
public class MinioClientConf
    {
       private String minioUrl;
       private String minioKey;
    .
    .
 

Для получения более подробной информации нажмите здесь

Комментарии:

1. Итак, проблема в том, что вы не получаете ценность для minio от ZooKeeper. Вы проверили?

2. На самом деле, через cli я могу получить обновленное значение узла ZooKeeper. Но свойство JavaBean по-прежнему имеет старое значение.