naocs 作为服务注册与发现和配置中心

下载和安装

国内的软件,去官网下就行了,下载好后到其 bin 目录执行命令 startup.cmd -m standalone 服务就会启动

浏览器访问,能访问到 nacos 界面

小试牛刀

  1. 工程导入依赖

    <!-- 当前服务注册到 nacos 需要 -->
    <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>
    
    <!-- 如果需要拉取 nacos 配置中心,需要加入这俩依赖(如果不需要就无需引入) -->
    <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>
    
  2. 启动类加注解

    // 注意没用 @EnableFeignClients,因为当前工程不需要发起远程调用,只是一个示例服务,只要能够注册到 nacos 就行
    @SpringBootApplication
    @EnableDiscoveryClient
    public class SpringbootApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringbootApplication.class, args);
        }
    }
    
  3. 读取 nacos 配置文件

    @RestController
    @RefreshScope
    public class TestController {
    
        // 读取配置文件的 test.username 值
        @Value("${test.username}")
        private String username;
    
        @GetMapping("/testGetConfig")
        public String testGetConfig(){
            return username;
        }
    }
    
  4. 配置文件,同 consul 一样,也会有两个

    # application.yml,这里配置工程自己的
    server:
      port: 9002
      profiles:
      	active: dev
            
            
    # bootrsap.yml,这里配置 nacos 相关的
    spring:
      application:
        name: my-nacos-config-client
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 # Nacos 服务注册中心地址
          config:
            server-addr: localhost:8848 # Nacos 配置中心地址
            file-extension: yaml # 指定 yaml 格式的配置
    
    
  5. 启动服务,刷新 nacos 页面,就能看到我们的服务了

  6. 创建配置,我们是 my-nacos-config-client 服务,环境是 dev,指定的格式是 yaml,当前工程就会到 nacos 拉取 my-nacos-config-client-dev.yaml 这个配置文件

  7. 访问测试

nacos 使用细节

  1. 注册与发现的配置类:com.alibaba.cloud.nacos.NacosDiscoveryProperties
  2. 分布式配置中心的配置类:com.alibaba.cloud.nacos.NacosConfigProperties
  3. 服务分为持久实例和临时实例
    1. 临时(默认):数据保存在内存中,客户端主动发送心跳到客户端,5秒一次,连续 3 次(15s)心跳检测失败视为不健康,连续 6 次(30s)心跳检测失败剔除服务
    2. 持久:需要配置,持久化到磁盘中,服务端主动检测客户端心跳,20 秒一次,一次失败就视为不健康
  4. 数据模型为三元模型:命名空间(namespace,默认 public)、分组(group,默认 DEFAULT_GROUP)、服务(data id)
posted @ 2024-08-15 17:22  CyrusHuang  阅读(2)  评论(0编辑  收藏  举报