Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计。它可以帮助您轻松构建云本机应用程序和微服务平台。

Nacos基本上支持现在所有类型的服务,例如,Dubbo / gRPC服务,Spring Cloud RESTFul服务或Kubernetes服务。

尤其是使用Eureka注册中心的,并且担心Eureka闭源的开发者们,可以将注册中心修改为Nacos,本文主要介绍Nacos配置中心的使用。

Nacos官网如下图所示,官网地址https://nacos.io/zh-cn/

Nacos 文档

https://nacos.io/zh-cn/docs/what-is-nacos.html

Nacos - 阿里开源配置中心
配置中心相信大家都有听过,zookeeper、apollo等等都是配置中心的代表,但大部分都是JAVA系为主的,笔者主要开发语言使用的是Golang当然也有类似于ETCD这样的组件,但是并不方便管理也无法可视化,在无意之间发现了阿里爸爸开源了nacos这个服务发现+配置中心组件,也经过了一段时间的时候在这里分享给大家

附上:

喵了个咪的博客:w-blog.cn

Nacos官方Git地址:https://github.com/alibaba/nacos

Nacos官方文档地址:https://nacos.io/zh-cn/docs/

Go语言SDK地址:https://github.com/sunmi-OS/gocore/tree/master/nacos

PS:当前官方最新版本为 V1.1.3,阿里云有提供配置中心服务ACM使用方式和Nacos相同,使用阿里云的前提下免运维是个不错的选择

一、Nacos介绍
Nacos是阿里云中间件团队开源的一个项目,基于阿里云内部提供的ACM配置管理服务进行独立,截止到现在github已经有8K以上的star了,虽然成熟度还不能和携程开源的apollo相提并论,比较也是在阿里云上提供服务的组件稳定性还是值得相信的,当然要使用介绍Nacos必须要介绍介绍配置中心这样一个思想了。

配置中心是个老生常谈的话题,从有软件编程开始配置管理都是工程中重要的一步,当然对与一个单体应用只需要单个配置文件或环境变量的方式来管理配置就好了所以不再本文的讨论范围内,配置中心主要解决服务化或微服务化下的配置管理中的如下问题:

有效的密码管理,开发不碰触密码配置,运维人员和架构团队统一管理避免泄露;
多项目下的配置绝对统一性,不会出现配置写错导致的BUG
对于配置的编辑、存储、分发、变更管理、历史版本管理、变更审计有完善的能力
配置分组和灰度发布
有好处当然也有坏处,相对于使用配置文件我们还需要解决如下问题:
配置中心异常情况下服务怎么保障可用(SDK提供Cache功能当中心服务不可用会使用上一次加载的缓存配置)
配置变更后的程序生效逻辑(SDK提供配置变动订阅逻辑可以订阅配置变动编写处理逻辑)
开发过程中的配置文件调试(需要框架进行设计)
对于部分语言来说(PHP)配置中心性能的问题(Nacos的吞吐量8C16G 15K并发)
对比下来还是可以总结出配置中心利大于弊的结论
二、Nacos部署
Nacos不止支持二进制部署也支持支持Docker和K8S部署,因为Nacos是有状态服务存储的数据需要依赖于Mysql而且集群的方式需要指定slave的IP所以使用K8S并不是很好的选择(K8S使用StatefulSet来运行有状态服务),笔者这里用Docker-Composer的方式来运行Nacos

Nacos官方Docker部署方式Git地址:https://github.com/nacos-group/nacos-docker
git clone https://github.com/nacos-group/nacos-docker.git
单机部署(内存模式):
docker-compose -f example/standalone-derby.yaml up
单机部署(Mysql模式):
docker-compose -f example/standalone-mysql.yaml up
集群部署:
docker-compose -f example/cluster-hostname.yaml up
访问:http://localhost:8848/nacos/ 就可以看到登录界面了
默认的账号密码就是:nacos/nacos

文档更新时间: 2020-12-09 10:39   作者:月影鹏鹏