本文转载自微信公众号《程序员jinjunzhu》,作者jinjunzhu。转载本文请联系程序员jinjunzhu公众号。Nacos是阿里巴巴开源的微服务管理平台,可以帮助开发者快速实现动态的服务发现、服务配置、服务元数据和流量管理。本文主要讲的是Nacos作为配置中心和注册中心的使用。1安装1.1linux下安装首先搭建一个单机Nacos集群。Nacos的安装有两种方式,一种是下载源码自行编译安装,另一种是下载编译好的压缩包解压后直接使用。在本文中,我使用第二种方法。首先从官网下载安装包,下载地址如下:https://github.com/alibaba/nacos/releases/tag/2.0.2Linux安装可能会遇到环境变量的问题,可以参考这篇文章[1].如果还是不行,执行下面两条命令重新安装:yumerasejava-1.*#删除原来的jdkyuinstalljava-1.8.0-openjdk*-y#重新安装jdkjdk没有问题后,启动Nacos,启动日志如下:[root@masterbin]#shstartup.sh-mstandalone/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/bin/java-Xms512m-Xmx512m-xmn256m-Dnacos.standalone=true-Dnacos.member.list=-Djava.ext.dirs=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre/lib/ext:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/lib/ext-Xloggc:/root/nacos/logs/nacos_gc.log-verbose:gc-XX:+PrintGCDetails-XX:+PrintGCDateStamps-XX:+PrintGCTimeStamps-XX:+UseGCLogFileRotation-XX:NumberOfGCLogFiles=10-XX:GCLogFileSize=100M-Dloader.path=/root/nacos/plugins/health,/root/nacos/plugins/cmdb-Dnacos.home=/root/nacos-jar/root/nacos/target/nacos-server.jar--spring.config.additional-location=file:/root/nacos/conf/--logging.config=/root/nacos/conf/nacos-logback.xml--server.max-http-header-size=524288nacosisstartingwithstandalonenacosisstarting,可以查看/root/nacos/logs/start.out1.2可视化界面浏览器输入以下地址:http://192.168.59.151:8848/nacos/index.html#/login登录界面如下:账号/密码:nacos/nacos,登录成功后如下图:2配置中心Nacos可以方便的与Spring、SpringBoot、SpringCloud、Docker、Dubbo、k8s等集成,本文主要使用SpringCloud集成Nacos2.1代码配置1.添加配置文件的依赖如下:根据官网的说法,这里的latest.version对应的是springboot版本。比如Nacos2.1.x.RELEASE版本对应的是SpringBoot2.1.x版本,Nacos2.0.x.RELEASE版本对应的是SpringBoot2.0.x版本。但x的子版本号不必完全匹配。上面的latest.version是我本地的SpringBoot是2.1.6,Nacos是2.1.4。2.添加一个bootstrap.properties文件,放在和SpringBoot配置文件同目录下,在这个文件中添加如下配置:#Nacosserver地址spring.cloud.nacos.config.server-addr=192.168.59.151:8848#ConfigurationPrefix,如果不配置,默认为spring.application.namespring.cloud.nacos.config.prefix=example#dataId后缀spring.cloud.nacos.config.file-extension=propertiesSpringCloud集成Nacos时,完整NacosdataId的格式如下:${prefix}-${spring.profiles.active}.${file-extension}这里需要注意两点:spring.profiles.active是spring时对应当前环境的profile.profiles.active为空,对应的connector-也不会存在,dataId的拼接格式变为${prefix}。${file-extension}file-exetension是配置内容的数据格式,目前只支持properties和yaml类型。以上配置对应的dataId为example-dev.properties。2.2测试配置如果要实现自动配置刷新,只需要在代码类上添加注解@RefreshScope即可,如下代码来自官网:@Controller@RequestMapping("config")@RefreshScopepublicclassConfigController{@Value("${useLocalCache:false}")privatebooleanuseLocalCache;@RequestMapping(value="/get",method=GET)@ResponseBodypublicbooleanget(){returnuseLocalCache;}}这时候写一个配置到Nacos,命令如下:curl-XPOST"http://192.168.59.151:8848/nacos/v1/cs/configs?dataId=example-dev.properties&group=DEFAULT_GROUP&content=useLocalCache=true"此时进入Nacos页面,可以看到配置上面插入,如下图:点击“Details”,可以看到配置数据,如下图:此时,如果使用api调用上面ConfigController的get方法,会返回真。如果使用下面的命令修改useLocalCache的值,再次调用get方法,会返回false。curl-XPOST"http://192.168.59.151:8848/nacos/v1/cs/configs?dataId=example-dev.properties&group=DEFAULT_GROUP&content=useLocalCache=false"点击下面示例代码可以看到获取配置的代码,这是上面控制器的代码。3注册中心3.1配置服务提供者1.在pom文件中添加配置,如下:
