1. Nacos简介
1.1 Nacos是什么
Nacos是什么?好像没听过,不要紧。那Eureka听说过吧,在SpringCloud中做服务注册中心组件,类似的还有Zookeeper、Consul。
所以Nacos也是一个注册中心组件咯,当然是,不过它不仅仅是注册中心。
Nacos也是一个配置中心,比如SpringCloud中的Config,将配置文件版本化管理。
那么Nacos到底是什么呢, 总结为官网一句话就是:
Nacos 致力于帮助您发现、配置和管理微服务。Nacos
提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
1.2 Nacos的发展历程
首先要说Nacos的发展历程就要从阿里巴巴的内部产品ConfigServer说起了,因为Nacos是ConfigServer
的开源实现,早在2008年阿里就开始服务化的进程(那个时候我好像还在上初中啊),在那个时候阿里内部自研的服务发现解决方案就叫做ConfigServer
,ConfigServer
经历了十年的发展从V1.0的单机版演变为目前对外公布的V4.0集群版。
2018年7月阿里巴巴高级技术专家许真恩(慕义)发布了Nacos首个开源版本V0.1.0,Nacos作为ConfigServer
的开源实现截止目前已经更新到了V1.0.1的大版本,并且支持大规模生产版本。
1.3 Nacos能做什么
虽然官方文档也有介绍,但是语言比较官方,我就用大白话谈一点自己的使用感受。
-
服务注册发现和服务健康检测
Nacos支持基于DNS和基于RPC的服务发现,服务端可以通过SDK或者Api进行服务注册,相应的服务消费者可以使用DNS或者Http查找的方式获取服务列表。Nacos同时提供对服务的实时健康检查,阻止想不健康的主机或服务发送请求,与Eureka类似Nacos也有友好的控制台界面。 -
动态配置服务
接触过SpringCloud应该对config有所了解,那么配置中心也就很好理解,Nacos支持动态的配置管理,将服务的配置信息分环境分类别外部管理,并且支持热更新。不过与Config不同Nacos的配置信息存储与数据库中,支持配置信息的监听和版本回滚。
-
动态DNS服务
支持权重路由,更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。不过这个特性目前版本还不支持 -
服务及元数据管理
Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。
2. 单机搭建
2.1 检查JAVA环境
2.2 下载安装包
nacos-server-2.0.0-ALPHA.1.tar
2.3 上传安装包到Linux中
2.4 解压
tar -zxvf nacos-server-2.0.0-ALPHA.1.tar.gz
2.5 启动Nacos
启动:bin目录下 -m standalone 代表单节点模式启动
./startup.sh -m standalone
http://192.168.16.128:8848/nacos/
帐号:nacos
密码:nacos
3. 集群搭建
3.1 检查mysql服务
3.1 修改application.properties
修改/nacos/conf/application.properties
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root
3.2 导入mysql文件
../nacos/conf/nacos-mysql.sql
3.3 配置集群节点信息
../nacos/conf/cluster.conf.example
cp cluster.conf.example cluster.conf
vim cluster.conf
3.4 启动节点
./startup.sh