什么是Nacos?
Nacos是阿里巴巴开源的项目,是一个更易于帮助构建云原生应用的动态服务发现、配置管理和服务管理平台。英文全称 Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configuration即注册中心,service是指该注册/配置中心都是以服务为核心。
Nacos功能介绍1、动态配置服务:动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。2、服务发现及管理:动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。Nacos支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现。Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,您可以更容易地为您的服务实现断路器。3、动态DNS服务:通过支持权重路由,动态DNS服务能让您轻松实现中间层负载均衡、更灵活的路由策略、流量控制以及简单数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。
为什么选择Nacos?1、易于使用:动态配置管理、服务发现和动态的一站式解决方案;20多种开箱即用的以服务为中心的架构特性;基本符合生产要求的轻量级易用控制台。2、更适应云架构:无缝支持Kubernetes和Spring Cloud;在主流公共云上更容易部署和运行(例如阿里云和AWS);多租户和多环境支持。3、生产等级:脱胎于历经阿里巴巴10年生产验证的内部产品;支持具有数百万服务的大规模场景;具备企业级SLA的开源产品。
4、丰富的应用场景:支持限流、大促销预案和异地多活;直接支持或稍作扩展即可支持大量有用的互联网应用场景;流量调度和服务治理。
准备环境在开始之前,请安装以下组件(官方推荐):64位操作系统:支持Linux/Unix/Mac/Windows,建议使用Linux/Unix/Mac(本次演示在Windows系统)。
64位JDK 1.8版本及以上。
Maven 3.2.x版本及以上。
下载源码或者安装包Nacos可以通过源码或者发行包两种方式下载。
1)从Github下载源代码git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
ls -al distribution/target/
// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin2)下载编译后压缩包方式
https://github.com/alibaba/nacos/releases
建议选择稳定版本(将$version替换成版本号):unzip nacos-server-$version.zip OR tar -xvf nacos-server-$version.tar.gz
cd nacos/bin
Windows版本直接使用解压工具即可。
启动Nacos Server服务Linux/Unix/Mac操作系统,执行命令如下:sh startup.sh -m standalone如果使用的是ubuntu系统,或遇到此错误消息(找不到符号),请尝试方式运行:bash startup.sh -m standaloneWindows 操作系统,执行命令如下:cmd startup.cmdnacos server访问地址:http://127.0.0.1:8848/nacos/nacos默认账户密码:nacos/nacos
服务与配置管理1、服务注册在控制台中手动添加配置信息如下:curl -X POST "http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=blog.yoodb.com&ip=123.57.47.154&port=443"
参考如图所示:
参数含义服务名:blog.yoodb.com
保护阈值:0
分组(默认):DEFAULT_GROUP2、服务发现参考服务注册此步跳过curl -X GET "http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=blog.yoodb.com"
3、发布配置在命令行执行如下命令,向Nacos Server中添加一条配置,也可在控制台中手动添加。curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=blog.yoodb.com&group=TEXT_GROUP&content=helloWorld"
参考如图所示:
参数含义dataId:blog.yoodb.com
group:TEXT_GROUP
配置内容:helloWorld4、获取配置参考发布配置此步跳过。curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=blog.yoodb.com&group=TEXT_GROUP"