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

  1. 添加依赖。
<dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-spring-context</artifactId><version>${latest.version}</version>
</dependency>

最新版本可以在 maven 仓库,如 "mvnrepository.com" 中获取。

  1. 添加 @EnableNacosConfig 注解启用 Nacos Spring 的配置管理服务。以下示例中,我们使用 @NacosPropertySource 加载了 dataId 为 example 的配置源,并开启自动更新:
@Configuration
@EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = "127.0.0.1:8848"))
@NacosPropertySource(dataId = "example", autoRefreshed = true)
public class NacosConfiguration {}
  1. 通过 Nacos 的 @NacosValue 注解设置属性值。
@Controller
@RequestMapping("config")
public class ConfigController {@NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)private boolean useLocalCache;@RequestMapping(value = "/get", method = GET)@ResponseBodypublic boolean get() {return useLocalCache;}
}
  1. 启动 Tomcat,调用 curl http://localhost:8080/config/get尝试获取配置信息。由于此时还未发布过配置,所以返回内容是 false

  2. 通过调用 Nacos Open API 向 Nacos Server 发布配置:dataId 为example,内容为useLocalCache=true

curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example&group=DEFAULT_GROUP&content=useLocalCache=true"
  1. 再次访问 http://localhost:8080/config/get,此时返回内容为true,说明程序中的useLocalCache值已经被动态更新了。

启动服务发现

本节演示如何在您的 Spring 项目中启动 Nacos 的服务发现功能。完整示例代码请参考:nacos-spring-discovery-example

  1. 添加依赖。
<dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-spring-context</artifactId><version>${latest.version}</version>
</dependency>

最新版本可以在 maven 仓库,如 "mvnrepository.com" 中获取。

  1. 通过添加 @EnableNacosDiscovery 注解开启 Nacos Spring 的服务发现功能:
@Configuration
@EnableNacosDiscovery(globalProperties = @NacosProperties(serverAddr = "127.0.0.1:8848"))
public class NacosConfiguration {}
  1. 使用 @NacosInjected 注入 Nacos 的 NamingService 实例:
@Controller
@RequestMapping("discovery")
public class DiscoveryController {@NacosInjectedprivate NamingService namingService;@RequestMapping(value = "/get", method = GET)@ResponseBodypublic List<Instance> get(@RequestParam String serviceName) throws NacosException {return namingService.getAllInstances(serviceName);}
}
  1. 启动 Tomcat,调用 curl http://localhost:8080/discovery/get?serviceName=example,此时返回为空 JSON 数组[]

  2. 通过调用 Nacos Open API 向 Nacos server 注册一个名称为 example 服务。

curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=example&ip=127.0.0.1&port=8080'
  1. 再次访问 curl http://localhost:8080/discovery/get?serviceName=example,此时返回内容为:
[{"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

Nacos Spring 快速开始相关推荐

  1. Nacos Spring Cloud 快速开始

    Nacos Spring Cloud 快速开始 本文主要面向 Spring Cloud 的使用者,通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务注册发现. 关于 Nacos ...

  2. Nacos Spring Boot 快速开始

    Nacos Spring Boot 快速开始 本文主要面向 Spring Boot 的使用者,通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务发现. 关于 Nacos Spr ...

  3. Spring快速开启计划任务

    转载自 Spring快速开启计划任务 Spring3.1开始让计划任务变得非常简单,只需要几个注解就能快速开启计划任务的支持. @EnableScheduling @Target(ElementTyp ...

  4. 【重温SSM框架系列】1 - Spring快速入门(配置文件及API详解)

    Spring快速入门 Spring是什么 Spring发展历史 Spring的优势 Spring的开发步骤 没有Spring的时候的开发步骤 使用Spring的开发步骤 Spring配置文件(appl ...

  5. Nacos Spring Cloud入门

    Nacos Spring Cloud 项目地址:https://github.com/alibaba/nacos/ 下载地址:https://github.com/alibaba/nacos/rele ...

  6. Spring快速集成Web环境

    Spring快速集成Web环境 这篇内容比较简单,话不多说,直接上代码 学习内容 1.新建一个Maven Module,并为其添加Web结构,在pom.XML中导入servlet坐标 pom.XML中 ...

  7. Spring Cloud Alibaba 2.2.6发布:新增Nacos注册快速失败的配置

    7月12日消息,Spring Cloud Alibaba新版本2.2.6发布,该版本适配Spring Cloud Hoxton.SR9. 下面一起来看看该版本内容: 特性增强 Nacos 支持服务注册 ...

  8. 搭建一套ASP.NET Core+Nacos+Spring Cloud Gateway项目

    前言 伴随着随着微服务概念的不断盛行,与之对应的各种解决方案也层出不穷.这毕竟是一个信息大爆发的时代,各种编程语言大行其道,各有各的优势.但是有一点未曾改变,那就是他们服务的方式,工作的时候各司其职, ...

  9. 【Nacos】快速认识和简单使用nacos

    Nacos 1. 简介 1.1 什么是Nacos Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量管理.Nacos 帮助您更敏捷和容易地构建.交付和管理微 ...

最新文章

  1. 删除目录下的特定命名的图片,获取特定名称图片的路径
  2. SQLServer数据表的创建
  3. Linux tar将分割的小文件进行合并
  4. can‘t resolve symbol xxx
  5. P4770:你的名字(SAM、线段树合并)
  6. javafx_JavaFX在这里留下来!
  7. 【转】一、用于VS2019的QT配置
  8. 系统架构设计师 - 第三方认证服务
  9. HackRF 无线门铃信号录制与重放
  10. 推荐几个好的域名交易站点
  11. IEC61850 总结
  12. JAVA防止任意文件上传,Tomcat任意文件上传漏洞以及环境配置
  13. 4.3 CMMI4级——定量项目管理(Quatitative Project Management)
  14. 大航海时代4+伙伴加入条件和港口一览
  15. stc12c5a60s2单片机c语言,STC12C5A60S2单片机的DS18B20的C程序
  16. 测评2.0关于安全通信网络三级等保测评项
  17. Installing APK 'app-debug.apk' on 'OPPO R9m - 5.1' for app:debug
  18. Google Chrome 66可以下载啦
  19. 关于const关键字
  20. C++设计模式——享元模式(高屋建瓴)

热门文章

  1. Linux: chmod 和 chown用法小结
  2. prototype.js教程及prototype中文手册
  3. SEO之Google--PageRank优化剖析(三)
  4. C++的继承知识点重温
  5. KMP——怪盗基德的挑战书(hdu4552)
  6. linux下编译安装ACE-6.5.1
  7. STM32的启动文见分析
  8. 如何区分iptables的PREROUTING和POSTROUTING链
  9. MongoDB基本概念和常用操作(一)
  10. Linux Vim基本操作(文件的打开和编辑)完全攻略(有图有真相)