网站上线前应该备案吗,物流网站的分类,网站服务器备案查询,小红书关键词排名优化转载自 Nacos Spring 快速开始
本文主要面向 Spring 的使用者#xff0c;通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务发现。
关于 Nacos Spring 的详细文档请参看#xff1a;nacos-spring-project。
通过 Nacos server 和 Nacos Spring 配置管…转载自 Nacos Spring 快速开始
本文主要面向 Spring 的使用者通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务发现。
关于 Nacos Spring 的详细文档请参看nacos-spring-project。
通过 Nacos server 和 Nacos Spring 配置管理模块实现配置的动态变更 通过 Nacos server 和 Nacos Spring 服务发现模块实现服务的注册与发现。 前提条件 您需要先下载 Nacos 并启动 Nacos server。操作步骤参见 Nacos 快速入门。
启动配置管理 启动了 Nacos server 后您就可以参考以下示例代码为您的 Spring 应用启动 Nacos 配置管理服务了。完整示例代码请参考nacos-spring-config-example
添加依赖。 dependency groupIdcom.alibaba.nacos/groupId artifactIdnacos-spring-context/artifactId version${latest.version}/version /dependency 最新版本可以在 maven 仓库如 mvnrepository.com 中获取。
添加 EnableNacosConfig 注解启用 Nacos Spring 的配置管理服务。以下示例中我们使用 NacosPropertySource 加载了 dataId 为 example 的配置源并开启自动更新 Configuration EnableNacosConfig(globalProperties NacosProperties(serverAddr 127.0.0.1:8848)) NacosPropertySource(dataId example, autoRefreshed true) public class NacosConfiguration {
} 通过 Nacos 的 NacosValue 注解设置属性值。 Controller RequestMapping(config) public class ConfigController { NacosValue(value ${useLocalCache:false}, autoRefreshed true) private boolean useLocalCache; RequestMapping(value /get, method GET) ResponseBody public boolean get() { return useLocalCache; } } 启动 Tomcat调用 curl http://localhost:8080/config/get尝试获取配置信息。由于此时还未发布过配置所以返回内容是 false。
通过调用 Nacos Open API 向 Nacos Server 发布配置dataId 为example内容为useLocalCachetrue
curl -X POST http://127.0.0.1:8848/nacos/v1/cs/configs?dataIdexamplegroupDEFAULT_GROUPcontentuseLocalCachetrue 再次访问 http://localhost:8080/config/get此时返回内容为true说明程序中的useLocalCache值已经被动态更新了。 启动服务发现 本节演示如何在您的 Spring 项目中启动 Nacos 的服务发现功能。完整示例代码请参考nacos-spring-discovery-example
添加依赖。 dependency groupIdcom.alibaba.nacos/groupId artifactIdnacos-spring-context/artifactId version${latest.version}/version /dependency 最新版本可以在 maven 仓库如 mvnrepository.com 中获取。
通过添加 EnableNacosDiscovery 注解开启 Nacos Spring 的服务发现功能 Configuration EnableNacosDiscovery(globalProperties NacosProperties(serverAddr 127.0.0.1:8848)) public class NacosConfiguration {
} 使用 NacosInjected 注入 Nacos 的 NamingService 实例 Controller RequestMapping(discovery) public class DiscoveryController { NacosInjected private NamingService namingService; RequestMapping(value /get, method GET) ResponseBody public ListInstance get(RequestParam String serviceName) throws NacosException { return namingService.getAllInstances(serviceName); } } 启动 Tomcat调用 curl http://localhost:8080/discovery/get?serviceNameexample此时返回为空 JSON 数组[]。
通过调用 Nacos Open API 向 Nacos server 注册一个名称为 example 服务。
curl -X PUT http://127.0.0.1:8848/nacos/v1/ns/instance?serviceNameexampleip127.0.0.1port8080 再次访问 curl http://localhost:8080/discovery/get?serviceNameexample此时返回内容为 [ { instanceId: 127.0.0.1#8080#DEFAULT#example, ip: 127.0.0.1, port: 8080, weight: 1.0, healthy: true, cluster: { serviceName: null, name: , healthChecker: { type: TCP }, defaultPort: 80, defaultCheckPort: 80, useIPPort4Check: true, metadata: {} }, service: null, metadata: {} } ] 相关项目 Nacos Nacos Spring Nacos Spring Boot Spring Cloud Alibaba