介绍

zookeeper有选举的功能,选的时候不能保证系统的可用性,满足的CP
Eurka遵守的是AP,peer to peer,去中心化,相互注册

nacos在自动或手动下线服务,使用消息机制通知客户端,服务实例的修改很快响应;Eureka只能通过任务定时剔除无效的服务。
nacos可以根据namespace命名空间,DataId,Group分组,来区分不同环境(dev,test,prod),不同项目的配置。

对于Nacos配置管理,通过Namespace(命名空间)、group、 Data ID能够定位到一个配置集。

Namespace: 代表不同环境,如开发、测试、生产环境。
Group:   代表某项目,如XX医疗项目、XX电商项目
Data ld:    每个项目下往往有若干个工程,每个配置集(Datald)是一个工程的主配置文件

可以通过代码对配置进行获取

//初始化配置服务,
String serverAddr = "127.0.0.1:8848";
String namespace = "ee247dde-d838- 425c-b371-029dab26232f"; //开发环境
//默认组
String dataId = "nacos-simple-demo.yaml";
Properties properties = new Properties();
properties.put("serverAddr", serverAddr);
properties.put("namespace", namespace);
ConfigService configService = NacosFactory. createConfigService(properties);
//获取配置,并输出控制台
String content = configService.getConfig(dataId,group,5000);
System.out.println( content);

Nacos配置文件示例

# 服务配置
server:
  # Nacos服务端口号
  port: 8848

# Spring Boot应用配置
spring:
  # 应用名称
  application:
    name: nacos-demo
  # 配置中心相关配置
  cloud:
    nacos:
      # 配置中心配置
      config:
        # Nacos服务器地址
        server-addr: localhost:8848
        # 配置文件所属命名空间
        namespace: 4d4d48a4-2254-4ed4-8d33-43e87c30a617
        # 配置文件数据ID
        name: nacos-demo.properties
        # 配置文件类型,可选值为"properties"和"yaml"
        type: properties
      # 服务注册与发现配置
      discovery:
        # Nacos服务器地址
        server-addr: localhost:8848
        # 服务名称,即在Nacos上注册的服务名
        service: nacos-demo-service
        # 服务的IP地址
        ip: 127.0.0.1
        # 服务的端口号
        port: 8080
        # 健康检查的URL,即客户端通过该URL来检查服务的健康状态
        health-check-url: /actuator/health
        # 服务实例的元数据,可以在Nacos控制台上进行查看
        metadata:
          version: 1.0
          description: Nacos Demo Service

# 数据库配置
datasource:
  # 数据库URL
  url: jdbc:mysql://localhost:3306/nacos_demo?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
  # 数据库用户名
  username: root
  # 数据库密码
  password: 123456
  # 数据库驱动类名
  driver-class-name: com.mysql.cj.jdbc.Driver

解读:

server.port: 8848:指定Nacos服务的端口号为8848。

spring.application.name: nacos-demo:指定应用名称为nacos-demo。

spring.cloud.nacos.config.server-addr: localhost:8848:指定Nacos Config的服务地址为localhost:8848。

spring.cloud.nacos.config.namespace: 4d4d48a4-2254-4ed4-8d33-43e87c30a617:指定配置文件所属的命名空间为4d4d48a4-2254-4ed4-8d33-43e87c30a617。

spring.cloud.nacos.config.name: nacos-demo.properties:指定配置文件的数据ID为nacos-demo.properties。

spring.cloud.nacos.config.type: properties:指定配置文件类型为properties。

spring.cloud.nacos.discovery.server-addr: localhost:8848:指定Nacos Discovery的服务地址为localhost:8848。

spring.cloud.nacos.discovery.service: nacos-demo-service:指定服务名称为nacos-demo-service。

`spring.cloud.nacos.discovery.ip: 127.

spring.cloud.nacos.discovery.port: 8080:指定服务的端口号为8080。

spring.cloud.nacos.discovery.health-check-url: /actuator/health:指定健康检查的URL为/actuator/health。

spring.cloud.nacos.discovery.metadata:指定服务实例的元数据。这里指定了版本和描述信息。

datasource.url:指定数据库的URL。

datasource.username:指定数据库的用户名。

datasource.password:指定数据库的密码。

datasource.driver-class-name:指定数据库的驱动类名。

在这个配置文件中,spring.cloud.nacos.config和spring.cloud.nacos.discovery分别表示Nacos的配置中心和服务注册与发现功能的配置。通过这些配置,应用程序可以与Nacos进行交互,实现动态配置和服务注册与发现的功能。

此外,这个配置文件中还包含了其他一些配置,比如数据库配置,用于指定应用程序所使用的数据库信息。