SpringCloud Alibaba --Nacos
SpringCloud Alibaba --Nacos
1、简介
简单一句话:Nacos就是注册中心 + 配置中心的组合,相当于Eureka + config + Bus;
Nacos官网:https://nacos.io/zh-cn/docs/what-is-nacos.html
2、下载安装
github下载太慢,推荐百度网盘下载(1.1.4):
zip:
链接:https://pan.baidu.com/s/1pJL1dmABECVpPAwyFDJvqg
提取码:4otz
gz:
链接:https://pan.baidu.com/s/1EJYpX-1ZwSRezIFfNQUQ0Q
提取码:vsmz
安装完成启动Nacos
3、访问:http://localhost:8848/nacos 默认账号:nacos; 密码:nacos
4、创建应用注册到Nacos
https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery
4.1、maven依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<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>
4.2、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配置的更多信息
组态 | 键 | 默认值 | 描述 |
---|---|---|---|
服务器地址 |
|
Nacos服务器侦听器的IP和端口 |
|
服务名称 |
|
|
命名当前服务 |
重量 |
|
|
值范围:1到100。值越大,重量越大。 |
网卡名称 |
|
如果未指定IP地址,则注册的IP地址是网卡的IP地址。如果也未指定,默认情况下将使用第一个网卡的IP地址。 |
|
注册IP地址 |
|
最高优先级 |
|
注册端口 |
|
|
默认情况下将自动检测。不需要配置。 |
命名空间 |
|
一个典型的场景是隔离针对不同环境的服务注册,例如测试和生产环境之间的资源(配置,服务等)隔离。 |
|
快捷键 |
|
阿里云帐户访问密钥 |
|
密钥 |
|
阿里云账户密钥 |
|
元数据 |
|
您可以使用地图格式为服务定义一些元数据 |
|
日志文件名 |
|
||
集群名称 |
|
|
Nacos的群集名称 |
终点 |
|
特定服务在特定区域中的域名。您可以使用该域名动态检索服务器地址 |
|
是否集成色带 |
|
|
在大多数情况下设置为true |
启用Nacos手表 |
|
|
设置为false以关闭手表 |
4.3、启动类添加:@EnableDiscoveryClient
服务提供者(provider)与服务消费者配置基本一样参照上面,只是配置的服务名字不一样
spring-cloud-starter-alibaba-nacos-discovery 默认集成了Ribbon
因此服务消费者(consumer)可以通过RestTemplate + ribbon 做负载调用服务
5、使用Nacos作为配置中心
5.1、maven依赖:
<!--alibaba-nacos-config-->
<dependency>
<groupId> com.alibaba.cloud </groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
5.2、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
5.3、application.yml
spring:
profiles:
active: dev
5.4、启动类添加:@EnableDiscoveryClient
5.5、controller:
@RestController
@RefreshScope // 支持Nacos的动态刷新功能
public class ConfigClientController {
@Value("${config.info}")
private String configInfo;
@GetMapping("/config/info")
public String getConfigInfo(){
return configInfo;
}
}
5.6、在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更多配置参数如下:
组态 | 键 | 默认值 | 描述 |
---|---|---|---|
服务器地址 |
|
Nacos服务器侦听器的IP和端口 |
|
来自Nacos配置的Dataid |
|
首先使用前缀,然后使用名称,最后使用spring.application.name |
|
来自Nacos配置的Dataid |
|
首先使用前缀,然后使用名称,最后使用spring.application.name |
|
编码nacos配置内容 |
|
编码nacos配置内容 |
|
GROUP for Nacos配置 |
|
|
GROUP for Nacos配置 |
nacos config dataId的后缀,也是config内容的文件扩展名。 |
|
|
nacos config dataId的后缀,以及config内容的文件扩展名(现在支持属性或yaml(yml)) |
从nacos获取配置超时 |
|
|
从nacos获取配置超时 |
终点 |
|
终点 |
|
命名空间 |
|
命名空间 |
|
快捷键 |
|
阿里云帐户访问密钥 |
|
密钥 |
|
阿里云账户密钥 |
|
Nacos Server的上下文路径 |
|
Nacos Server的上下文路径 |
|
集群名称 |
|
集群名称 |
|
共享配置的Dataid |
|
共享配置的数据标识,用“,”分隔 |
|
共享配置的动态刷新dataid |
|
共享配置的动态刷新数据标识,用“,”分隔 |
|
自定义dataid |
|
这是一个列表,由 |
自定义组:
{spring.cloud.nacos.config.group}
未定义配置时,默认情况下使用DEFAULT_GROUP 。如果需要定义自己的组,则可以在以下属性中进行定义:
spring.cloud.nacos.config.group = DEVELOP_GROUP