nacos--基础--3.1--集成--spring--配置管理、服务发现、服务注册
主要面向 Spring 的使用者通过2个实例,来介绍nacos和Spring的集成配置管理服务注册与发现。
·
nacos–基础–3.1–集成–spring–配置管理、服务发现、服务注册
代码位置
https://gitee.com/DanShenGuiZu/learnDemo/tree/master/nacos-learn/nacos-Spring
1、介绍
- 主要面向 Spring 的使用者
- 通过2个实例,来介绍nacos和Spring的集成
- 配置管理
- 服务注册与发现
2、配置管理
实现配置的动态变更
2.1、代码
2.1.1、结构

2.1.2、代码
依赖
<!--nacos 配置管理,服务发现-->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-spring-context</artifactId>
<version>1.1.1</version>
</dependency>
配置管理
@Configuration
//EnableNacosConfig注解 启用 Nacos Spring 的配置管理服务
@EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = "192.168.187.171:8848"))
// 配置文件的dataId,支持自动刷新属性
@NacosPropertySource(dataId = "example", autoRefreshed = true)
public class ConfigManagerConfig {
}
配置管理controller
/**
*
* 配置管理
* @author <a href="920786312@qq.com">周飞</a>
* @since 2022/10/17 10:34
*/
@Controller
@RequestMapping("config")
public class ConfigManagerController {
// 使用 @NacosInjected 注入 Nacos 的 NamingService 实例:
@NacosInjected
private ConfigService configService;
@NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)
private boolean useLocalCache;
@RequestMapping(value = "/get", method = GET)
@ResponseBody
public boolean get() {
return useLocalCache;
}
/**
* curl -X POST
* 'http://localhost:8080/config?dataId=example&content=useLocalCache=true'
*/
@RequestMapping(method = POST)
@ResponseBody
public ResponseEntity<String> publish(@RequestParam String dataId,
@RequestParam(defaultValue = "DEFAULT_GROUP") String group, @RequestParam String content) {
boolean result = false;
try {
result = configService.publishConfig(dataId, group, content);
} catch (NacosException e) {
return new ResponseEntity<String>("Publish Fail:" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
if (result) {
return new ResponseEntity<String>("Publish Success", HttpStatus.OK);
}
return new ResponseEntity<String>("Publish Fail, Retry", HttpStatus.INTERNAL_SERVER_ERROR);
}
}
2.2、测试
2.2.1、获取配置信息
http://localhost:8080/config/get

2.2.2、设置配置信息
http://localhost:8080/config?dataId=example&content=useLocalCache=true



3、服务发现
实现服务的注册与发现
3.1、代码
3.1.1、结构

3.1.2、代码
依赖
<!--nacos 配置管理,服务发现-->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-spring-context</artifactId>
<version>1.1.1</version>
</dependency>
服务注册和发现
@Configuration
//EnableNacosDiscovery注解 开启 Nacos Spring 的服务发现功能:
@EnableNacosDiscovery(globalProperties = @NacosProperties(serverAddr = "192.168.187.171:8848"))
public class DiscoveryConfig {
}
服务注册和发现controller
@Controller
@RequestMapping("discovery")
public class DiscoveryController {
// 使用 @NacosInjected 注入 Nacos 的 NamingService 实例:
@NacosInjected
private NamingService namingService;
// 通过服务名称查找服务
@RequestMapping(value = "/get", method = RequestMethod.GET)
@ResponseBody
public List<Instance> get(@RequestParam String serviceName) throws NacosException {
return namingService.getAllInstances(serviceName);
}
}
3.2、测试
3.2.1、注册服务
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=example&ip=127.0.0.1&port=8080'

3.2.2、获取服务
http://localhost:8080/discovery/get?serviceName=example

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)