9.Nacos
9.1.SpringCloudAlibaba简介
SpringCloudAlibaba
致力于提供微服务开发的一站式解决方案。
此项目包含开发分布式应用微服务的必需组件,方便开发者通过SpringCloud
编程模型轻松使用这些组件来开发分布式应用服务。
依托SpringCloudAlibaba
,只需要添加一些注解和少量配置,就可以将SpringCloud
应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统
SpringCloudAlibaba开发的组件
SpringCloudAlibaba的版本依赖
9.2.简介
Nacos
致力于发现、配置和管理微服务。
Nacos
提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos
帮助您更敏捷和容易地构建、交付和管理微服务平台。
Nacos
是构建以“服务”为中心 的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
下面是nacos的一些核心概念
9.2.1.服务(Service)
服务是指一个或一组软件功能(例如特定信息的检索或一组操作的执行),其目的是不同的客 户端可以为不同的目的重用(例如通过跨进程的网络调用)。
Nacos
支持主流的服务生态, 如KubernetesService
、 gRPC|DubboRPCService
或者SpringCloudRESTfulService
。
9.2.2.服务注册中心(ServiceRegistry)
服务注册中心是服务实例及元数据的数据库。
服务实例在启动时注册到服务注册表,并在关闭时注销。
服务和路由器的客户端查询服务注册表以查找服务的可用实例。
服务注册中心可能会调用服务实例的健康检查API来验证它是否能够处理请求。
9.2.3.服务元数据(ServiceMetadata)
服务元数据是指包括服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规 则、安全策略等描述服务的数据。
9.2.4.服务提供方(ServiceProvider)
服务提供方是指提供可复用和可调用服务的应用方。
9.2.5.服务消费方(ServiceConsumer)
服务消费方是指会发起对某个服务调用的应用方。
9.2.6.配置文件中心(Configuration)
在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立 的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地 和实际的物理运行环境进行适配。
配置管理一般包含在系统部署的过程中,由系统管理员或者 运维人员完成这个步骤。配置变更是调整系统运行时的行为的有效手段之一。
9.2.7.配置管理(ConfigurationManagement)
在数据中心中,系统中所有配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动统称为配置管理。
9.2.8.名字服务(NamingService)
提供分布式系统中所有对象(Object)、实体(Entity)的“名字”到关联的元数据之间的映射管理服务,例如 ServiceName -> Endpoints Info, Distributed Lock Name -> Lock Owner/Status Info, DNS Domain Name -> IP List, 服务发现和 DNS 就是名字服务的 2 大场景。
9.2.9.配置服务(ConfigurationService)
在服务或者应用运行过程中,提供动态配置或者元数据以及配置管理的服务提供者。
9.3.安装与启动
9.3.1.版本选择
9.3.2.下载
1.打开网址之后选择版本
2.点击进去之后选择Windows/Linux版本的压缩包即可
9.3.3.解压以及目录说明
bin:可执行文件夹目录,包含:启动、停止命令等
conf:配置文件目录
target:存放naocs-server.jar
LICENSE:授权信息,Nacos 使用 Apache License Version 2.0 授权
NOTICE:公告信息
9.3.4.修改配置文件
打开conf目录下的application.properties文件
9.3.5.数据导入
以后nacos的所有配置信息、命名空间、配置中心、注册中心等信息都回保存在数据库中对应的表里面。
新建一个数据库:名字为刚才设置的数据库名字,默认为nacos
运行SQL文件:文件在conf目录下,运行名为nacos-mysql.sql的SQL文件
9.3.6.启动
运行bin目录下的startup.cmd文件即可
默认的运行方式为集群(cluster)模式,可以修改里面的文件改为单机(standalone)模式
也可以使用带参数的方式运行为单机模式:startup.cmd -m standalone
9.3.7.访问测试
http://localhost:8848/nacos/#/login
默认的账号密码都是:nacos
可以在user表里面查看/修改,密码加密规则为BcryptPasswordEncoder
9.4.使用Nacos做注册中心
9.4.1.新建命名空间
9.4.2.搭建Nacos-client-a与Nacos-client-b
①创建项目
这里修改为:start.aliyun.com
②选择依赖
NacosServiceDiscovery为nacos的注册中心依赖
③修改启动类
④修改配置
9.4.3.访问测试
http://localhost:8848/nacos/#/serviceManagement
9.4.4.服务发现
创建一个controller类
serviceId为要访问的服务名称
依次进行修改访问测试:http://localhost:8001/test
先不修改命名空间进行访问,结果为instance是空,说明不能跨命名空间
修改命名空间和b的一样,但组名不一样,结果为instance是空,说明不能跨组
修改命名空间、组和b的一样,结果为instance是1,说明在同一个命名空间和一个组内可以进行服务发现
9.4.5.集成Feign做远程调用
①修改Nacos-client-b
添加一个controller
②修改Nacos-client-a
修改pom.xml
修改启动类
添加feign类
修改controller类
③访问测试
http://localhost:8001/test,出现张三访问成功即为成功
9.4.6.集成Gateway做网关
搭建gateway
①选择依赖
②修改配置文件
③修改启动类
④访问测试
http://localhost/nacos-client-a/test,出现张三访问成功即为成功
9.4.7.更多配置项
9.5.Nacos配置文件中心
使用SpringCloudAlibabaNacosConfig
,可基于SpringCloud
的编程模型快速接 入Nacos
配置管理功能。
9.5.1.新建配置中心
9.5.2.搭建nacos-config
①选择依赖
nacosConfiguration为配置中心依赖
②创建controller
③修改配置文件
将配置文件改为bootstrap.yml,必须叫这个名字
④访问测试
注意:配置中心和注册中心的命名空间要一直才能获取到信息
9.5.3. 测试配置文件的动态刷新
修改配置中心中的配置
直接访问测试,不需要重新启动项目:http://localhost:8003/config
9.5.4.配置文件回滚
最上面的是最新的
选择回滚的配置,确定回滚
直接访问测试,不需要重新启动项目:http://localhost:8003/config
数据库中的历史版本,会保存30天
9.5.5.配置文件的读取方式
nacos
配置中心通过namespace、dataId和group来唯一确定一条配置。
Namespace:命名空间,默认的命名空间为public
,可以在Nacos
控制台中新建命名空间;
dataId:配置文件名称,格式为
-
${prefix} - ${spring.profiles.active} . ${file-extension}
-
prefix :默认为
spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
配置spring.profiles.active:当前环境对应的
profile
。- 当
spring.profiles.active
为空时,对应的连接符-也将不存在,dataId
的拼接格式变成${prefix}.${file-extension}
;
file-extension:配置内容的数据格式,可以通过配置项
spring.cloud.nacos.config.file-extension
配置。 - 当
group:配置分组,默认为DEFAULT_GROUP
,可以通过spring.cloud.nacos.config.group
配置。
在写 dataId 的时候一定要添加文件类型后缀,否则会出现访问不到的问题
9.5.6.读取多个配置文件
Nacos
配置中心的namespace
、dataId
和group
可以方便灵活地划分配置。
①新建两个配置
②修改配置文件
③修改controller
④访问测试
⑤测试动态刷新
修改nacos-config-a.yml
、nacos-config-b.yml
访问测试:http://localhost:8003/config
9.5.7.常用配置
9.5.8.本地和远端的配置文件需要写什么
本地(bootstrap.yml
)
- 应用名称
- 注册中心地址
- 读取的配置文件名称信息
远端(配置中心)
- 端口
- 数据源
- redis
- mq
- mybatis
- Swagger......
为了方便去动态刷新和修改
标签:服务,配置文件,配置,Nacos,nacos,修改 From: https://www.cnblogs.com/Myvlog/p/17438699.html