springcloud五大组件之---Nacos

发布时间 2024-01-05 10:11:52作者: 一波二浪

SpringCloud五大组件之Nacos

一、Nacos是什么?

  阿里的一个开源产品,是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案。(用来实现配置中心和服务注册中心);

二、Nacos的四大功能

  1.服务发现和服务健康监测(使服务更容易注册,并通过DNS或HTTP接口发现其他服务,还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求。)

  2.动态配置服务

  3.动态DNS

  4.服务及元数据管理

三、注册中心功能

1.相关依赖

    <!-- spring cloud alibaba nacos discovery 服务注册依赖 -->
   <dependency>
       <groupId>com.alibaba.cloud</groupId>
       <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
   </dependency>

2.项目配置

spring:
cloud:
  nacos:
    discovery:
      enabled: true # 如果不想使用 Nacos 进行服务注册和发现, 设置为 false 即可
      server-addr: 127.0.0.1:8848
      namespace: cbfe7aa0-a47c-4c42-80bc-3c0f9880413a

3.启动类设置

@EnableDiscoveryClient
@SpringBootApplication
public class AuthorityCenterApplication {

   public static void main(String[] args) {

       SpringApplication.run(AuthorityCenterApplication.class, args);
  }
}

四、配置中心功能

1.相关依赖

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

2.在Nacos上配置文件,使用代码读取

(1)Nacos作为配置中心,简单使用

默认配置:当配置文件名称为项目的application name 时,代码会自动拉取

  1. 配置文件

    spring:
    application:
      name: demo
    cloud:
      nacos:
        server-addr: 127.0.0.1:8848
        username: nacos
        password: nacos
        discovery: #服务注册与发现中心
          namespace: 96d3abb7-d522-4001-8ff4-750ef598fc22
        config: #配置中心
          namespace: 96d3abb7-d522-4001-8ff4-750ef598fc22

    4.,其他相关配置

    (1)refresh-enabled属性:用来开启、关闭动态刷新(值为false后nacos客户端无法感知配置的变化)

(2)profile属性:在配置中心可以使用profile进行设置即 dataId=服务名称-项目启动环境.文件格式后缀 即 dataId=${spring.application.name}-${profile}.${file-extension:properties}

(3)file-extension属性:nacos客户端默认拉取的是properties格式的配置文件,其他文件格式需要在项目配置文件中指定,只针对默认的配置文件和profile。

(4)shared-configs属性:可以共享配置文件,编写多个配置文件,配置在此属性里面。data-id表示配置文件名称, refresh表示是否动态刷新,group表示分组名称默认为DEFAULT_GROUP

(5)

五、使用小技巧

Nacos中NameSpace、Group、DataId的最佳实践 NameSpace:代表不同环境,如开发,测试,生产环境。

    Group:代表项目,如医疗项目、保险项目、电商项目。

  DataId:每个项目下往往有若干个微服务,每个配置集(DataId)是一个微服务的主配置文件。

2、配置文件优先级 优先级大的会覆盖优先级小的,并且形成互补

    profile>默认配置文件>extension-configs(下标越大优先级越大)>shared-configs(下标越大优先级越大)