前言
注册中心和配置中心应该算是微服务中的标配了。而nacos作为由阿里开源一款非常优秀的产品,成功将两者结合起来,可以让开发者将更多的精力投入到业务功能的开发中。
一、nacos是什么?
Nacos 是由阿里开源的一款产品,致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
官网地址:https://nacos.io/zh-cn/docs/what-is-nacos.html
二、有哪些功能?
1.服务发现与服务健康检查
Nacos使服务更容易注册自己并通过DNS或HTTP接口发现其他服务。Nacos还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求。并支持服务的上下线。
2.动态配置管理
动态配置服务允许您在所有环境中以集中和动态的方式管理所有服务的配置。Nacos消除了在更新配置时重新部署应用程序和服务的需要,这使配置更改更加高效和灵活。
3.动态DNS服务
Nacos支持加权路由,使您可以更轻松地在数据中心的生产环境中实施中间层负载平衡,灵活的路由策略,流量控制和简单的DNS解析服务。它可以帮助您轻松实现基于DNS的服务发现,并防止应用程序耦合到特定于供应商的服务发现API。
4.服务和元数据管理
Nacos提供易于使用的服务仪表板,可帮助您管理服务元数据,配置,kubernetes DNS,服务运行状况和指标统计。
在日常工作中,nacos主要是作为微服务中的注册中心和配置中心,它除了提供非常简洁友好的web界面,还支持服务的上下线,动态配置管理,配置版本的回滚,多租户,简单够用的权限管理等非常实用的功能。
三、部署安装
1.jdk环境配置
2.下载对应的releases版本
最新文档版本:https://github.com/alibaba/nacos/releases
这里我下载的版本是:nacos-server-2.0.0-BETA.tar.gz
解压文件:
tar -zxvf nacos-server-2.0.0-BETA.tar.gz
3.启动服务器
进入nacos的bin目录下
Linux/Unix/Mac
启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:
bash startup.sh -m standalone
Windows
启动命令(standalone代表着单机模式运行,非集群模式):
cmd startup.cmd -m standalone
这种方式是后台启动,看不到日志输出,无法判断是否出现异常。
可以查看nacos/logs/start.out日志输出,看服务启动是否正常。
tail -200f logs/start.out
控制台的访问页面是:http://localhost:8848/nacos/index.html
说明服务启动成功。
4.访问控制台
访问控制台:http://localhost:8848/nacos/index.html
采用默认用户nacos,密码nacos登陆。
四、采用mysql持久化
nacos默认配置下启动,采用的是嵌入式数据库,新增修改的用户权限等配置,都是保存中内存中的。当nacos服务重启后,信息会丢失。这时我们就需要开启nacos的mysql持久化功能,将信息写入到mysql数据库中。
1.进入nacos安装目录的conf目录下:
2.在mysql上新建nacos数据库,并执行nacos-mysql.sql初始化表结构
3.修改配置application.properties
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://11.162.196.16:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=nacos_devtest db.password=youdontknow
4.重启nacos服务
可以尝试新建用户,看信息是否成功写入到nacos库中的users表中。
五、开启权限认证
按照官方文档配置启动,默认是不需要登录的,这样会导致配置中心对外直接暴露。而启用鉴权之后,需要在使用用户名和密码登录之后,才能正常使用nacos。
开启鉴权之前,application.properties中的配置信息为:
### If turn on auth system: nacos.core.auth.enabled=false
开启鉴权之后,application.properties中的配置信息为:
### If turn on auth system: nacos.core.auth.enabled=true
注意,如果不开启的权限认证,会出现新建的用户可以登陆到nacos控制台。并且可以读写所有命名空间的配置文件的情况,给用户配置的读写权限没有起作用的情况。
当开启权限配置后,如果访问没有读写权限的命名空间,就会出现权限不够的异常提示,说明权限配置已经起作用。
通过创建多个命名空间,并且给用户分配对应命名空间的读写权限,可以很方便的实现用户对多环境下的配置文件读写权限的精确控制。
总结
主要介绍nacos的入门级使用。
1、nacos的功能说明,主要是作为微服务体系中的注册中心和配置中心。
2、nacos的部署安装
3、nacos的mysql持久化
4、开启nacos的权限控制配置