Nacos注册中心

Nacos快速开始:https://nacos.io/zh-cn/docs/quick-start.html


一、Nacos安装

1、基于Docker安装

其他安装方式可以参考nacos快速开始

docker pull nacos/nacos-server

docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server

参数说明:
MODE standalone  单机模式

访问 --> localhost:8848/nacos

2、配置

① pom.xml依赖

<dependencies>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

    </dependencies>

② bootstrap配置文件

server:
  port: 8080
spring:
  application:
    name: service1
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.17.128:8848
      config:
        server-addr: 192.168.17.128:8848
        ## 注册中心需要手动配置服务的配置文件
        ## 自动去nacos找 spring.application.name + yaml 的配置文件名;默认的优先级最大
        file-extension: yaml

        ## 引入外部统一配置:自定义data-id,优先级【n】 n越大,优先级越高,优先级最低的是共享模式的配置
        ## 不在默认分组,不支持动态刷新
        ext-config[0]:
          data-id: ex-config-common1.properties
          group: DEV_GROUP
        ## 不在默认分组,但是指定refresh=true,支持动态刷新
        ext-config[1]:
          data-id: ex-config-common2.properties
          group: TEST_GROUP
          refresh: true
        ## 默认分组 DEFAULT_GROUP 支持动态刷新(本项目版本貌似不支持自动刷新)
        ext-config[2]:
          data-id: ex-config-common3.properties

③ 启动类

@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class Service1Application {

    public static void main(String[] args) {
        SpringApplication.run(Service1Application.class, args);
    }

    //用environment会重新加载配置文件信息,无需配置@RefreshScope
    @Autowired
    private Environment environment;

    //需配置@RefreshScope
    @Value("${liyueken.name}")
    private String name;

    @GetMapping(value = "config")
    public String config(){
        String property = environment.getProperty("liyueken.name");
        String common1 = environment.getProperty("exconfig.common1");
        String common2 = environment.getProperty("exconfig.common2");
        String common3 = environment.getProperty("exconfig.common3");
        return "property: "+property+"common1: "+common1+"common2: "+common2+"common3: "+common3;
    }

}

④ Nacos配置文件

 

posted @ 2020-04-09 00:01  恳小跃  阅读(563)  评论(0编辑  收藏  举报