欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Springboot整合Nacos2.0配置管理及服务发现

时间:2023-07-06

1、下载 Nacos 并启动 Nacos server
见 Nacos的安装使用
2、启动配置管理
(1)添加依赖

com.alibaba.boot nacos-config-spring-boot-starter 0.2.10

注意:版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。本示例使用的是0.2.10版本,springboot要使用较低版本,否则会报错,本示例使用的是2.2.4.RELEASE版本。详见NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactorymetadata
(2)在 application.yml 中配置 Nacos server 的地址

nacos: config: server-addr: 127.0.0.1:8848

(3)使用 @NacosPropertySource 加载 dataId 为 nacostest 的配置源,并开启自动更新

@SpringBootApplication@NacosPropertySource(dataId = "nacostest", autoRefreshed = true)public class TengxunsmsApplication { public static void main(String[] args) { SpringApplication.run(TengxunsmsApplication.class, args); }}

(4)通过 Nacos 的 @NacosValue 注解设置属性值

@Controller@RequestMapping("config")public class ConfigController { @NacosValue(value = "${userLocalCache:false}", autoRefreshed = true) private boolean userLocalCache; @RequestMapping(value = "/get", method = GET) @ResponseBody public boolean get() { return userLocalCache; }}

(5)启动应用TengxunsmsApplication
(6)测试
1)cmd下执行

curl http://localhost:8080/config/get

返回false
2)cmd下调用 Nacos Open API 向 Nacos server 发布配置:dataId 为nacostest,内容为userLocalCache=true

curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacostest&group=DEFAULT_GROUP&content=userLocalCache=true"

再次执行

curl http://localhost:8080/config/get

返回true

3、启动服务发现
(1)添加依赖

com.alibaba.boot nacos-discovery-spring-boot-starter 0.2.10

注意:版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。
(2)在 application.yml 中配置 Nacos server 的地址

nacos: discovery: server-addr: 127.0.0.1:8848

(3)使用 @NacosInjected 注入 Nacos 的 NamingService 实例

@Controller@RequestMapping("discovery")public class DiscoveryController { @NacosInjected private NamingService namingService; public List get(@RequestParam String serviceName) throws NacosException { return namingService.getAllInstances(serviceName); }}

(4)启动应用TengxunsmsApplication
(5)测试
1)cmd下执行

curl http://localhost:8080/discovery/get?serviceName=nacos-test

返回为【】
2)调用 Nacos Open API 向 Nacos server 注册一个名称为 nacos-test 服务

curl -X POST "http://127.0.0.1:8848/nacos/v1/ns/instance?port=8080&healthy=true&ip=127.0.0.1&weight=1.0&serviceName=nacos-test&encoding=GBK"

再次执行

curl http://localhost:8080/discovery/get?serviceName=nacos-test

返回为

[{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@nacos-test","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@nacos-test","metadata":{},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000,"instanceIdGenerator":"simple"}]

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。