SpringCloudAlibaba 2021.0.5.0 intègre les enregistrements d'utilisation du centre de configuration du cluster Nacos2.2.0

Enregistrement d'utilisation du centre de configuration de cluster Nacos2.2.0, a marché sur trop de fosses
Référence de construction de cluster Nacos2.2.0

1. Utilisation du centre de configuration Nacos

Document officiel : https://github.com/alibaba/springcloudaliba/wiki/Nacosconfig

1.1 Préparer la configuration

nouvelle construction
nouvelle configuration

config:
    name: coisini
server:
  port: 9420

configuration yaml

DataId : Il existe plusieurs microservices sous chaque projet, et chaque jeu de configuration (DataId) est le fichier de configuration principal d'un microservice.
Groupe : Représente un projet.
Espace de noms : Représente différents environnements, tels que les environnements de développement, de test et de production.

1.2 Construire le service nacos-config

1) Introduisez les dépendances :
version correspondante de SpringCloud https://github.com/alibaba/spring-cloud-alibaba/wiki/ version description
Version
configuration

<!--Springboot版本管理-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>2.6.13</version>
                <type>pom</type>
            </dependency>
            <!--spring-cloud版本管理-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2021.0.5</version>
            </dependency>
            <!--spring-cloud-alibaba版本管理-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2021.0.5.0</version>
            </dependency>

     <!--引入nacos服务-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--引入nacos-config服务-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
         <!--bootstrap加载到上下文-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

2) Ajouter application.yml bootstrap.ymldes fichiers au projet


application.yml

server:
  port: ${
    
    server.port}

bootstrap.yml

spring:
    # 配置中心地址
  application:
    # 服务名称
    name: admin
  # 环境配置 例如 admin-dev.yaml
  #profiles:
  #  active: dev
  cloud:
    nacos:
      discovery:
        # 开启nacos作为服务注册中心,默认值:true
        enabled: true
        # nacos集群服务注册地址
        server-addr: 192.168.20.128:8999
        # nacos用户名
        username: nacos
        # nacos密码
        password: nacos
        # 命名空间,默认 public,可设置dev,pro等,相同特征的服务分类,先去nacos命名空间创建
        # namespace: public
        # 分组,默认 DEFAULT_GROUP 相同特征的服务划分的更细
        group: DEFAULT_GROUP
        # 临时实例,默认true,false永久实例,即使宕机也不会从nacos服务中删除,可应对雪崩保护,避免服务被删除
        ephemeral: true
        # 权重 1-100 数值越大权重越大分配的流量就越大,通常结合权重负载均衡策略
        weight: 100
      config:
        server-addr: ${
    
    spring.cloud.nacos.discovery.server-addr}
        username: ${
    
    spring.cloud.nacos.discovery.username}
        password: ${
    
    spring.cloud.nacos.discovery.password}
        # dataid为yaml的文件扩展名配置方式 ${spring.application.name}.${file‐extension:properties}
        file-extension: yaml
        # namespace:
        group: DEFAULT_GROUP
        context-path: /nacos
        # 共享配置
        #shared-configs:
        #  - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

3) Testez si le microservice utilise la
classe de démarrage de configuration du centre de configuration :

@SpringBootApplication
// 服务注册发现
@EnableDiscoveryClient
 //开启 OpenFeign 功能
@EnableFeignClients
public class AdminApplication {
    
    
    public static void main(String[] args) throws InterruptedException {
    
    
        ConfigurableApplicationContext applicationContext = SpringApplication.run(AdminApplication.class, args);
        while (true) {
    
    
            String name = applicationContext.getEnvironment().getProperty("config.name");
            String post = applicationContext.getEnvironment().getProperty("server.port");
            System.out.println("name :"+name);
            System.out.println("post :"+post);
            // 每一秒加载一次,查询注册中心配置是否变更
            TimeUnit.SECONDS.sleep(2);
        }
    }
}

Créez un nouveau contrôleur pour tester si la valeur config.name peut être obtenue

@RestController
// 当前类下的配置支持动态更新
@RefreshScope
@RequestMapping("/api/admin")
public class CsController {
    
    
    @Value("${config.name}")
    String name;

    @GetMapping("/cs")
    public String cs() {
    
    
        return name;
    }
}

Lancez l'essai :
test
test
Servir


Terminé, merci d'avoir lu ~
FIN


Je suppose que tu aimes

Origine blog.csdn.net/qq_44870331/article/details/129837557
conseillé
Classement