Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态范围发现,配置管理和服务管理平台,使用java编写,需要依赖java环境
文档地址:https://nacos.io/zh-cn/docs/quick-start.html
Nacos Discovery Example
1.首先,修改 pom.xml 文件,引入 Nacos Discovery Starter。
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2.在应用的 /src/main/resources/application.properties 配置文件中配置 Nacos Server 地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
3.使用 @EnableDiscoveryClient 注解开启服务注册与发现功能
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@RestController
class EchoController {
@GetMapping(value = "/echo/{string}")
public String echo(@PathVariable String string) {
return string;
}
}
}
启动 Nacos Server
-
首先需要获取 Nacos Server,支持直接下载和源码构建两种方式。
- 直接下载:Nacos Server 下载页
- 源码构建:进入 Nacos Github 项目页面,将代码 git clone 到本地自行编译打包,参考此文档。推荐使用源码构建方式以获取最新版本
-
启动 Server,进入解压后文件夹或编译打包好的文件夹,找到如下相对文件夹 nacos/bin,并对照操作系统实际情况之下如下命令。
- Linux/Unix/Mac 操作系统,执行命令
sh startup.sh -m standalone
- Windows 操作系统,执行命令
cmd startup.cmd
- Linux/Unix/Mac 操作系统,执行命令
应用启动
-
增加配置,在 nacos-discovery-provider-example 项目的 /src/main/resources/application.properties 中添加基本配置信息
spring.application.name=service-provider server.port=18082
-
启动应用,支持 IDE 直接启动和编译打包后启动。
- IDE直接启动:找到 nacos-discovery-provider-example 项目的主类
ProviderApplication
,执行 main 方法启动应用。 - 打包编译后启动:在 nacos-discovery-provider-example 项目中执行
mvn clean package
将工程编译打包,然后执行java -jar nacos-discovery-provider-example.jar
启动应用。
- IDE直接启动:找到 nacos-discovery-provider-example 项目的主类
验证
查询服务
在浏览器输入此地址
http://127.0.0.1:8848/nacos/v1/ns/catalog/instances?serviceName=service-provider&clusterName=DEFAULT&pageSize=10&pageNo=1&namespaceId=
,并点击跳转,可以看到服务节点已经成功注册到 Nacos Server。
二、如何使用nocos作为配置中心统一管理配置
2.1 引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.2 创建一个bootstrap.properties
#配置中心的名字
spring.application.name=nacos-config-example
#配置中心的地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
2.3 需要给配置中心默认添加一个叫 数据集(Data Id) 名字必须和bootstrap.properties中的spring.application.name相同(默认规则:应用名.properties)
2.4 给 应用名.properties添加任务配置
2.5 动态获取配置 接口加上
@RefreshScope:动态获取并刷新配置
@Value (“${配置项的名}”)获取某个属性的值
如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置。
注意事项:
1)命名空间:配置隔离
默认:public(保留空间),默认新增的所有配置都在public空间
1、开发、测试、生产:利用命名空间来做环境隔离,在bootstrap.properties中配置上,需要使用哪个命名空间下的配置。
spring.cloud.nacos.config.namespace=kfh2dk8ufh1ak-fk2hd7dsf-a123
2、基于每个微服务之间互相隔离配置,每一个微服务都创建自己的命名空间,只加载自己命名空间下的配置
2)配置集:所有的配置的集合
3)配置集Id:类似于配置文件名
Data ID:类似文件名
4)配置分组:默认所有的配置集都属于 DEFAULT_GROUP
设置使用哪个组只需要在bootstrap文件中 增加 spring.cloud.nacos.config.group=组名
可以每个微服务创建自己的命名空间,使用配置分组来区分环境,dev,test,prod