Nacos注册中心
- 手机
- 2025-08-19 06:24:01

Nacos 安装
nacos.io/zh-cn/
源码安装第一步:利用Gitee获取nacos在github上的代码到自己的gitee仓库中
github /alibaba/nacos.git
第二步:下载源码到本地。
第三步:使用maven编译代码。
# 先切换到master分支 git checkout master # 使用如下命令编译源码 mvn -Prelease-nacos -Dmaven.test.skip=true -Drat.skip=true clean install -U第四步:编译好的内容在distribution目录下
第五步:把zip文件放到其他目录中,并解压。
第六步:修改配置conf目录下的配置文件,添加secretkey。
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789第七步:启动nacos F:\env\nacos\bin目录下
startup.cmd -m standalone Nacos环境测试nacos.io/zh-cn/docs/v2/quickstart/quick-start.html
#服务注册 curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080' #服务发现 curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName' #发布配置 curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld" #获取配置 curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test" Nacos服务的注册与发现nacos.io/zh-cn/
nacos.io/zh-cn/docs/quick-start-spring-cloud.html
父POM注意版本号的选取。
<packaging>pom</packaging> <properties> <spring.cloud-version>Hoxton.SR10</spring.cloud-version> <springboot-version>2.2.9.RELEASE</springboot-version> <spring.cloudalibaba-version>2.2.9.RELEASE</spring.cloudalibaba-version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring.cloud-version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${springboot-version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring.cloudalibaba-version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 模块 provider微服务模块中引入nacos依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>yml配置
server: port: 8070 spring: application: name: service-provider #服务名称 cloud: nacos: discovery: server-addr: 127.0.0.1:8848 #nacos注册中心的地址启动类NacosProviderApplication
@SpringBootApplication @EnableDiscoveryClient // 注册到nacos中 public class NacosProviderApplication { public static void main(String[] args) { SpringApplication.run(NacosProviderApplication.class, args); } } @RestController public class EchoController { @Value("${server.port}") private Integer port; @RequestMapping(value = "/echo/{string}", method = RequestMethod.GET) public String echo(@PathVariable String string) { return "Hello Nacos Discovery: "+port+"--->" + string; } } 模块 consumerpom文件与producer一致
server: port: 8090 spring: application: name: service-consumer cloud: nacos: discovery: server-addr: 127.0.0.1:8848启动类NacosConsumerApplication
@SpringBootApplication @EnableDiscoveryClient // 注册到nacos中 不管是消费者还是提供者,都是这个注册到nacos中 public class NacosConsumerApplication { @LoadBalanced @Bean public RestTemplate restTemplate() { return new RestTemplate(); } public static void main(String[] args) { SpringApplication.run(NacosConsumerApplication.class, args); } } @RestController public class TestController { private final RestTemplate restTemplate; @Autowired public TestController(RestTemplate restTemplate) {this.restTemplate = restTemplate;} @RequestMapping(value = "/echo/{str}", method = RequestMethod.GET) public String echo(@PathVariable String str) { return restTemplate.getForObject("http://service-provider/echo/" + str, String.class); } } Nacos服务配置中心nacos.io/zh-cn/docs/quick-start-spring-cloud.html
POM文件 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> </dependencies> yml配置文件文件名为:bootstrap.yml
spring: application: name: config-demo cloud: nacos: server-addr: 127.0.0.1:8848 config: group: mygroup file-extension: yaml profiles: active: dev Nacos配置中心添加服务配置注意需要在bootstrap配置文件中声明nacos中使用的配置文件的扩展名
spring.cloud.nacos.config.file-extension=yaml spring: application: name: config-demo #跟配置的前缀名字 cloud: nacos: server-addr: 127.0.0.1:8848 config: file-extension: yaml profiles: active: test #跟配置的后缀 设备名匹配如果需要指定配置文件的分组,如下
spring.cloud.nacos.config.group=dev .cloud.nacos.config.file-extension=yaml spring: application: name: config-demo #跟配置的前缀名字 cloud: nacos: server-addr: 127.0.0.1:8848 config: file-extension: yaml profiles: active: test #跟配置的后缀 设备名匹配如果需要指定配置文件的分组,如下
spring.cloud.nacos.config.group=dev