Spring实现nacos简单实例
简介
Nacos 致力于帮助发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助快速实现动态服务发现、服务配置、服务元数据及流量管理。简单来说,可以当作注册中心,代替Eureka或者ZK;可以当作配置中心,代替Appllo 和Config。
通过 Nacos Server 和 nacos-config-spring-boot-starter 实现配置的动态变更。
通过 Nacos Server 和 nacos-discovery-spring-boot-starter 实现服务的注册与发现。
下载
下载地址:https://github.com/alibaba/nacos/releases
下载文件说明
1 | nacos-server-2.0.3.tar.gz 已编译Linux和macOS格式 |
部署模式
Nacos支持三种部署模式
单机模式 - 用于测试和单机试用。
集群模式 - 用于生产环境,确保高可用。
多集群模式 - 用于多数据中心场景。
本文为单机试用
配置
conf目录
nacos-mysql.sql 初始化SQL
nacos内置有数据库,默认使用nacos内置数据库
如果需要使用外部数据库,先使用nacos-mysql.sql文件初始化数据库,再修改application.properties文件的数据库配置部分。
application.properties 配置nacos
启动nacos
前提:JDK环境,JAVA_HOME方式配置。
默认集群方式启动nacos
单机启动命令如下:
startup.cmd -m standalone
添加gradle
1 | // Nacos注册中心 |
注意:版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。
建议:Spring Boot 2.3.12.RELEASE 版本,nacos-config-spring-boot-starter 最新版本。(Spring Boot 版本不能过高,否则报错 error creating bean with name ‘nacosconfigurationpropertiesbinder’)
配置application.properties
1 | nacos.config.server-addr=127.0.0.1:8848 |
配置启动类
1 | // 启动类上增加注解 |
ConfigController实现
1 |
|
ConfigController测试
发布配置: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"获取配置
curl http://localhost:8080/config/get
DiscoveryController实现
1 |
|
DiscoveryController测试
注册一个名称为
example
服务
curl -X PUT ‘http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=example&ip=127.0.0.1&port=8080'获取服务信息
curl http://localhost:8080/discovery/get?serviceName=example