déploiement et gestion de la configuration nacos
fichier de configuration
Créez d'abord un nouveau fichier de configuration
- Data ID : le nom du fichier de configuration (unique)
- Spécification de dénomination : nom du service-environnement d'exécution-nom du suffixe (utilisez généralement votre yaml)
- Groupe : nom du groupe, utilisez généralement la valeur par défaut
- Contenu de la configuration : remplissez généralement la configuration qui doit être modifiée fréquemment, par exemple : certains commutateurs, paramètres, etc.
Ordre d'acquisition de la configuration :
项目启动
>> 读取bootstrap.yml文件
>> 读取nacos配置文件
>> 读取本地配置文件application.yml
>> 创建spring容器
>> 加载bean
Parce que la priorité de lecture du fichier de configuration nacos est supérieure à celle de l'application, les informations de configuration de nacos dans l'application ne peuvent pas répondre à nos besoins, donc spring fournit un fichier bootstrap, sa priorité est supérieur à nacos, nous sommes habitués à stocker les informations de configuration de nacos dans le bootstrap
- Introduire les dépendances du client de gestion de configuration nacos
<!-- nacos配置-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
- Créer un fichier bootstrap.yml pour configurer les informations nacos
spring:
application:
name: userservice #服务名称
profiles:
active: dev #开发环境
cloud:
nacos:
config:
file-extension: yaml #文件后缀名
server-addr: localhost:8848 #nacos地址
- Obtenez les informations de configuration correspondantes via l'annotation @value
@Component
@Data
public class Confix {
@Value("${pattern.dataformat}") //yyyy-MM-dd HH:mm:ss
private String dataformat;
}
@Autowired
private Confix confix;
@GetMapping("/get")
public String now(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(confix.getDataformat()));
}
déploiement à chaud de la configuration nacos
Le déploiement à chaud de la configuration peut être réalisé via l'annotation @RefreshScope. Le bean modifié par l'annotation @RefreshScope sera mandaté par RefreshScope pour réaliser le chargement à chaud de la configuration et de l'instance, c'est-à-dire que lorsque la configuration change, le bean peut être actualisé sans redémarrer l'application liée valeur d'attribut
@Component
@Data
@RefreshScope
public class Confix {
@Value("${pattern.dataformat}")
private String dataformat;
}
Utilisez l'annotation @ConfigurationProperties pour marquer la classe de configuration. Une fois la configuration publiée via Nacos, la classe de configuration sera à nouveau liée. À ce moment, la modification dynamique de la variable prendra effet et l'emplacement utilisé sera injecté via @Autowired .
@Component
@Data
@ConfigurationProperties(prefix = "pattern")
public class Confix {
private String dataformat;
}
前缀名(@ConfigurationProperties(prefix = "pattern"))和变量名(dataformat)拼接后要和配置文件一致