Pour démarrer avec Nacos, téléchargez la distribution depuis le site officiel et lancez-la en mode autonome avec la commande startup.cmd -m standalone depuis le répertoire bin. L'interface web sera accessible via un navigateur sur le port par défaut.
Intégrez Nacos dans une application Spring Boot en ajoutant les dépendances nécessaires. Pour la découverte de services, utilisez spring-cloud-starter-alibaba-nacos-discovery. Si l'application nécessite l'équilibrage de charge, ajoutez spring-cloud-starter-loadbalancer. Pour accéder au centre de configuration, incluez spring-cloud-starter-alibaba-nacos-config et spring-cloud-starter-bootstrap.
<!-- Dépendances pour Nacos dans un projet Maven -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
Anotez la classe principale avec @SpringBootApplication et @EnableDiscoveryClient pour activer l'intégration avec Nacos. Par exemple :
@SpringBootApplication
@EnableDiscoveryClient
public class MonApplicationService {
public static void main(String[] args) {
SpringApplication.run(MonApplicationService.class, args);
}
}
Pour lire les propriétés depuis Nacos, créez un contrôleur avec @RefreshScope et utilisez @Value pour injecter les valeurs. Modifiez le nom de la variable pour refléter la configuration.
@RestController
@RefreshScope
public class ParametreController {
@Value("${app.user.login}")
private String loginUtilisateur;
@GetMapping("/obtenirParametre")
public String obtenirParametre() {
return loginUtilisateur;
}
}
Configurez l'application avec deux fichiers : application.yml pour les paramètres locaux et bootstrap.yml pour connecter Nacos.
# application.yml
server:
port: 8090
spring:
profiles:
active: prod
# bootstrap.yml
spring:
application:
name: client-config-nacos
cloud:
nacos:
discovery:
server-addr: localhost:8848
config:
server-addr: localhost:8848
file-extension: yaml
Démarrez l'application et vérifiez son enregistrement dans l'interface Nacos. Créez ensuite un fichier de configuration nommé client-config-nacos-prod.yaml dans Nacos pour que l'application le récupère automatiquement.
Pour des détails avancés, notez que les propriétés de découverte sont gérées par com.alibaba.cloud.nacos.NacosDiscoveryProperties et celles de configuration par com.alibaba.cloud.nacos.NacosConfigProperties. Les instances peuvent être temporaires (en mémoire avec heartbeat actif toutes les 5 secondes) ou persistantes (sur disque avec détection passative). Le modèle de données repose sur l'espace de noms, le groupe et l'identifiant de données.