Cloud Alibaba --Nacos

Cloud  Alibaba --Nacos

简单一句话:Nacos就是注册中心 + 配置中心的组合,相当于Eureka + config + Bus;

Nacos官网:https://nacos.io/zh-cn/docs/what-is-nacos.html

下载安装:github下载太慢,推荐百度网盘下载(1.1.4):

zip:

链接:https://pan.baidu.com/s/1pJL1dmABECVpPAwyFDJvqg
提取码:4otz

gz:

链接:https://pan.baidu.com/s/1EJYpX-1ZwSRezIFfNQUQ0Q
提取码:vsmz

安装完成启动Nacos

访问:http://localhost:8848/nacos

 默认账号:nacos; 密码:nacos

一、Nacos服务注册与发现

maven依赖

<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>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
View Code

yml配置:

server:
  port: 9001


spring:
  application:
    name: cloud-alibaba-nacos-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
management:
  endpoints:
    web:
      exposure:
        include: '*'

有关Nacos Discovery Starter配置的更多信息

组态默认值描述

服务器地址

spring.cloud.nacos.discovery.server-addr

 

Nacos服务器侦听器的IP和端口

服务名称

spring.cloud.nacos.discovery.service

${spring.application.name}

命名当前服务

重量

spring.cloud.nacos.discovery.weight

1

值范围:1到100。值越大,重量越大。

网卡名称

spring.cloud.nacos.discovery.network-interface

 

如果未指定IP地址,则注册的IP地址是网卡的IP地址。如果也未指定,默认情况下将使用第一个网卡的IP地址。

注册IP地址

spring.cloud.nacos.discovery.ip

 

最高优先级

注册端口

spring.cloud.nacos.discovery.port

-1

默认情况下将自动检测。不需要配置。

命名空间

spring.cloud.nacos.discovery.namespace

 

一个典型的场景是隔离针对不同环境的服务注册,例如测试和生产环境之间的资源(配置,服务等)隔离。

快捷键

spring.cloud.nacos.discovery.access-key

 

阿里云帐户访问密钥

密钥

spring.cloud.nacos.discovery.secret-key

 

阿里云账户密钥

元数据

spring.cloud.nacos.discovery.metadata

 

您可以使用地图格式为服务定义一些元数据

日志文件名

spring.cloud.nacos.discovery.log-name

   

集群名称

spring.cloud.nacos.discovery.cluster-name

DEFAULT

Nacos的群集名称

终点

spring.cloud.nacos.discovery.endpoint

 

特定服务在特定区域中的域名。您可以使用该域名动态检索服务器地址

是否集成色带

ribbon.nacos.enabled

true

在大多数情况下设置为true

启用Nacos手表

spring.cloud.nacos.discovery.watch.enabled

true

设置为false以关闭手表

启动类添加:@EnableDiscoveryClient

 服务提供者(provider)与服务消费者配置基本一样参照上面,只是配置的服务名字不一样

spring-cloud-starter-alibaba-nacos-discovery 默认集成了Ribbon

 因此服务消费者(consumer)可以通过RestTemplate + ribbon 做负载调用服务

二、Nacos config 统一配置中心

maven依赖:

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

bootstrap.yml:

server:
  port: 3377


spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
       # nacos 服务注册中心地址
        server-addr: localhost:8848
      config:
      # nacos 作为配置中心的地址
        server-addr: localhost:8848
        # 指定yaml格式的配置方式
        file-extension: yaml

application.yml

spring:
  profiles:
    active: dev

启动类添加:@EnableDiscoveryClient

controller:

@RestController
@RefreshScope // 支持Nacos的动态刷新功能
public class ConfigClientController {

    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo(){
        return configInfo;
    }
    
}

在Nacos中添加配置文件:

Data ID文件命名规范:

 

 启动项目看看能不能获取到配置信息:

自定义命名空间:

命名空间用于隔离不同租户的配置。在不同的命名空间中,组和数据ID可以相同。命名空间的典型场景是隔离不同环境的配置,例如,开发/测试环境与生产环境(配置和服务等)之间的隔离。

如果未指定名称空间,则使用Nacos的“公共”名称空间${spring.cloud.nacos.config.namespace}。您还可以通过以下方式指定自定义名称空间:

spring.cloud.nacos.config.namespace = b3404bc0-d7dc-4855-b519-570ed34b62d7

此配置必须在bootstrap.properties文件中。的值spring.cloud.nacos.config.namespace是名称空间的ID,可以从Nacos控制台中检索ID的值。添加配置时,请勿选择其他名称空间。否则,将无法正确检索配置。

 

 nacos config更多配置参数如下:

组态默认值描述

服务器地址

spring.cloud.nacos.config.server-addr

 

Nacos服务器侦听器的IP和端口

来自Nacos配置的Dataid

spring.cloud.nacos.config.name

 

首先使用前缀,然后使用名称,最后使用spring.application.name

来自Nacos配置的Dataid

spring.cloud.nacos.config.prefix

 

首先使用前缀,然后使用名称,最后使用spring.application.name

编码nacos配置内容

spring.cloud.nacos.config.encode

 

编码nacos配置内容

GROUP for Nacos配置

spring.cloud.nacos.config.group

DEFAULT_GROUP

GROUP for Nacos配置

nacos config dataId的后缀,也是config内容的文件扩展名。

spring.cloud.nacos.config.fileExtension

properties

nacos config dataId的后缀,以及config内容的文件扩展名(现在支持属性或yaml(yml))

从nacos获取配置超时

spring.cloud.nacos.config.timeout

3000

从nacos获取配置超时

终点

spring.cloud.nacos.config.endpoint

 

终点

命名空间

spring.cloud.nacos.config.namespace

 

命名空间

快捷键

spring.cloud.nacos.config.accessKey

 

阿里云帐户访问密钥

密钥

spring.cloud.nacos.config.secretKey

 

阿里云账户密钥

Nacos Server的上下文路径

spring.cloud.nacos.config.contextPath

 

Nacos Server的上下文路径

集群名称

spring.cloud.nacos.config.clusterName

 

集群名称

共享配置的Dataid

spring.cloud.nacos.config.sharedDataids

 

共享配置的数据标识,用“,”分隔

共享配置的动态刷新dataid

spring.cloud.nacos.config.refreshableDataids

 

共享配置的动态刷新数据标识,用“,”分隔

自定义dataid

spring.cloud.nacos.config.extConfig

 

这是一个列表,由ConfigPOJO 建立Config具有3个属性dataIdgrouprefresh

 

自定义组:

{spring.cloud.nacos.config.group}未定义配置时,默认情况下使用DEFAULT_GROUP 。如果需要定义自己的组,则可以在以下属性中进行定义:

spring.cloud.nacos.config.group = DEVELOP_GROUP

原文地址:https://www.cnblogs.com/dw3306/p/12863699.html