1.引言
nacos是阿里开源的一个服务注册发现、配置管理以及服务管理组件。支持主流服务类型,比如
- springcloud restful service
- grpc&dubbo rpc service
- kubernetes service
并且提供了强大的特性,支持丰富的应用场景,比如
- 服务发现和服务健康检查
- 动态配置服务
- 动态DNS服务
- 管理控制台
对于熟悉springcloud的小伙伴来说,我们可以简单理解,nacos可以用来替换eureka、和springcloud config组件,即很多时候,我们把nacos用于服务注册与发现、以及配置管理。
而且nacos提供了简洁易用的管理控制台dashboard,使用起来非常方便!值得拥有,它的官方地址是:nacos.io/

2.搭建管理控制台
先来搭建一个nacos管理控制台,直观感受一下。我们可以有两种搭建方式
- 直接下载官方提供的发行包
- 下载源码,本地自己打包
2.1.下载官方发行包
可以到github下载,下载地址:github.com/alibaba/nac...
需要注意如果我们要在springcloud alibaba中整合使用nacos,那要注意一下版本的选择,看过我sentinel系列文章的小伙伴,应该还记得这个地址:github.com/alibaba/spr...
该地址详细列出了springcloud alibaba中各组件版本兼容关系、以及springboot、springcloud、springcloud alibaba之间的版本兼容关系,强烈建议小伙伴们看一下!
所以为了兼容springcloud alibaba 2.2.6.RELEASE版本,nacos我们选择1.4.2版本。
详细地址:github.com/alibaba/nac...

下载到本地后,进行解压

进入nacos-server-1.4.2目录
shell
cd D:\nacos\nacos-server-1.4.2\nacos

进入bin目录,启动nacos控制台
shell
#进入 bin目录
cd bin
#执行命令,启动nacos管理控制台
startup.cmd -m standalone
注意:一定要以通过-m standalone单节点方式启动,默认启动脚本是以集群模式启动,会报错!关于集群模式启动,请关注后续文章【搭建生产可用nacos高可用集群】
启动完毕,访问:http://127.0.0.1:8848/nacos,输入账号信息:nacos/nacos

到此,通过官方提供的发行包搭建了一个nacos管理控制台。
2.2.下载源码包
通常直接使用官方发行包搭建管理控制台就可以了。但是有时候,我们可能会需要对nacos进行一些定制化改造,那就需要通过源码包方式
- 下载源码包
- 定制化修改
- 编译打包
所以我们可以下载源码包,直接下载,或者通过git clone都可以,我直接下载了

通过ide工具打开nacos工程

在Terminal终端窗口,执行mvn打包命令
shell
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
打包成功后,进入distribution目录,我们发现已经有与官方发行包一样的nacos-server-xxx.zip包了

2.3.管理控制台介绍
搭建好nacos管理控制台,访问地址:http://127.0.0.1:8848/nacos,输入账号信息:nacos/nacos,我们看到nacos管理控制台,提供了以下能力
- 配置列表
- 服务管理
- 权限控制
- 命名空间
- 集群管理
2.3.1.配置列表
配置列表,支持配置实时配置、动态刷新、历史版本回滚等能力

2.3.2.服务管理
服务管理,支持查看已经注册的服务列表、服务相关管理操作,比如上线、下线等

2.3.3.权限控制
这是nacos新版本增加的能力,终于有了权限控制!再也不用担心谁都能上来操作了!

2.3.4.命名空间
命名空间,这是nacos领域模型中的一个核心概念,相当于profile特性,后面详细介绍

2.3.5.集群管理
支持查看、管理nacos集群节点

3.服务注册发现、配置管理体验
nacos提供了一系列api,可以让我们快速体验
- 服务注册
- 服务发现
- 服务配置
3.1.服务注册
请求api
shell
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=user-center&ip=127.0.0.1&port=8080'
比如

服务注册成功后,管理控制台展现注册上的服务

3.2.服务发现
请求api
shell
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=user-center'
请求结果

3.3.发布配置
请求api
shell
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=user-center&group=test&content=Hello nacos"
请求结果

3.4.获取配置
请求api
shell
curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=user-center&group=test"
请求结果

3.5.关闭管理控制台
执行命令
shell
shutdown.cmd