作者:毕来生 微信:878799579
前言
个人比较看好Spring Cloud Alibaba家族。此系列以Nacos为主题,从Spring、Spring boot、Spring Cloud多个方面逐步进行演示,源码解读。目前来看官方文档还有待完善。网络上除了官网外缺少Nacos系列文章。都是零零散散的知识点。如此系列文章哪里写的有不周全,错误之处。欢迎大家指正。谢谢。
因公众号排版问题,可能会有代码显示不完整,请使用电脑版微信内置浏览器/复制链接到浏览器中。
1、Nacos是什么?服务发现和服务健康监测动态配置服务动态 DNS 服务服务及其元数据管理Nacos架构图
2、准备工作
工具:IDEA2018.3 、JDK: 1.8、Maven:3.5(通用配置。后续不在提及此部分。均已此版本演示)
Nacos:0.7.0(写此文章时最新版本,如后续更新。以最新版本给大家演示)
环境:Windows(演示用,后续更新完成后会有一章在linux下演示。有坑,但原理一样。不多赘述。)
Nacos稳定版本:https://github.com/alibaba/nacos/releases
Linux下请下载tar后解压。Windows下请下载zip。
代码语言:javascript
代码运行次数: 0 运行 复制
下载后启动Nacos。Nacos默认启动端口为8848,意为珠穆朗玛峰高度。如启动有端口冲突,请自行调整端口。
3、工程结构
上面说了那么多,现在先整理来看一下我们的工程结构
附上关键部分代码。
NacosConfiguration代码语言:javascript
代码运行次数: 0 运行 复制 注解启用 Nacos Spring 的配置管理服务。@NacosPropertySource dataId nacos-spring`的配置源,并开启自动更新。对 Nacos Spring 的用户来说,在自身应用中就只是设置 “autoRefreshed” 的一个布尔值。然后在需要修改配置的时候,调用 Nacos 修改配置的接口,或使用 Nacos 的控制台去修改,配置发生变更后, Nacos 就会把最新的配置推送到该应用的所有机器上。NacosDiscoveryController代码语言:javascript
代码运行次数: 0 运行 复制
此文件为普通Spring映射控制器,话说Nacos Spring还是小马哥@mercyblitz亲自操刀。大家可以不用怀疑质量啦。相信很多同学都快被小马哥逼的要劝退了。
着重说明一下,这个也是Nacos中常用的方法之一。
代码语言:javascript
代码运行次数: 0 运行 复制代码语言:javascript
代码运行次数: 0 运行 复制
请求参数
名称
类型
描述
serviceName
字符串
服务名
clusters
List
集群列表
返回参数
List 实例列表。
描述
用于服务启动的时候从 Nacos 获取配置。
代码语言:javascript
代码运行次数: 0 运行 复制
请求参数
参数名
参数类型
描述
dataId
string
配置 ID,采用类似 package.class(如com.taobao.tc.refund.log.level)的命名规则保证全局唯一性,class 部分建议是配置的业务含义。全部字符小写。只允许英文字符和 4 种特殊字符(”.”、”:”、”-“、”_”),不超过 256 字节。
group
string
配置分组,建议填写产品名:模块名(Nacos:Test)保证唯一性,只允许英文字符和4种特殊字符(”.”、”:”、”-“、”_”),不超过128字节。
timeout
long
读取配置超时时间,单位 ms,推荐值 3000。
返回值
参数类型
描述
string
配置值
请求示例
代码语言:javascript
代码运行次数: 0 运行 复制
上述两个文件中关于Nacos使用,请参考官网NacosSDK。里面详细标注了每个方法以及对应参数以及测试案例。
父pom.xml代码语言:javascript
代码运行次数: 0 运行 复制本工程pom.xml代码语言:javascript
代码运行次数: 0 运行 复制页面请求
页面请求同普通Spring相同,启动后根据http://ip:端口/controller/xxx。