Nacos (Dynamic Naming and Configuration Service) 是一个开源的动态服务发现、配置管理和服务管理平台,主要用于云原生应用的构建和管理。它由阿里巴巴开发,旨在帮助开发者更好地管理微服务架构中的服务发现和配置。
主要功能:
- 服务发现:支持服务的注册和发现,使微服务能够轻松找到彼此,支持多种服务注册模式
- 动态配置管理:提供实时的配置管理,可以动态地推送配置变化到客户端,支持多环境管理。
- 服务管理:包括服务的健康检查、服务的元数据管理等,帮助维护服务的稳定性。
- 高可用性:支持集群模式,能够应对高并发的请求,并且具备容错机制。
Ubuntu 系统下
1. 下载 nacos 压缩包
2. 上传压缩包到某个目录下,使用 unzip 命令(apt-get install unzip)解压
3. 解压后的目录结构如下
bin: Nacos启停脚本
startup.cmd:windows平台的启动脚本
startup.sh:Linux平台的启动脚本
shutdown.cmd: windows平台的停止脚本
shutdown.sh: Linux平台的停止脚本
conf: Nacos配置文件
target: 存放 Nacos 应用的 jar 包
4. 启动:进入nacos/bin目录,输入命令 bash startup.sh -m standalone

standalone 指定为单机模式下启动
5. 启动成功后访问 Nacos :http://IP:port/nacos,port 默认为 8848
1. 服务注册,服务发现
在父工程中引入 Spring Cloud Alibaba 依赖
讯享网
Spring Boot 和 Spring Cloud 的版本是有一定对应关系的,Spring Cloud Alibaba 也遵循 Spring Cloud 的标准,在引入依赖时,要确认各个版本的对应关系,Spring Cloud Alibaba 和Spring Cloud 版本对应关系,参考官方文档:
在对应子工程中引入Nacos依赖和 Load Balance依赖
讯享网
nacos配置

2. 负载均衡
Nacos 支持多种负载均衡策略,包括权重,同机房,同地域,同环境等
服务下线:当某一个节点上接口的性能较差时,我们可以第一时间对该节点进行下线

权重配置:可以配置某个节点的流量权重,然后开启 nacos 负载均衡策略,由于 Spring Cloud LoadBalance 组件自身有负载均衡配置方式,所以不支持 Nacos 的权重属性配置,所有需要开启Nacos 的负载均衡策略,让权重配置生效。

3. 同集群优先访问
需配置上述负载均衡策略
Nacos把同一个机房内的实例,划分为一个集群,所以同集群优先访问,在一定程度上也可以理解为同机房优先访问;
微服务访问时,应尽量访问同机房的实例,当本机房内实例不可用时,才访问其他机房的实例,通常情况下,因为同一个机房的机器属于一个局域网,局域网访问速度更快一点.
为实例配置集群名称
讯享网
4. 健康检测
客户端主动上报机制
客户端通过心跳上报方式告知服务端(nacos注册中心)健康状态,默认心跳间隔5秒

nacos会在超过15秒未收到心跳后将实例设置为不健康状态,超过30秒将实例删除
服务器反向探测机制
nacos主动探知客户端健康状态,默认间隔为20秒
健康检查失败后实例会被标记为不健康,不会被立即删除

nacos 服务实例类型
Nacos 的服务实例(注册的节点)分为临时实例和非临时实例
临时实例:如果实例宕机超过一定时间,会从服务列表剔除,默认类型
非临时实例:如果实例宕机,不会从服务列表剔除,也可以叫永久实例
Nacos对临时实例,采取的是客户端主动上报机制,对非临时实例,采取服务器端反向探测机制
配置⼀个服务实例为永久实例
设置服务实例类型,重新启动Nacos可能会报错
原因:Nacos 会记录每个服务实例的 IP 和端口号,当发现 IP 和端口都没有发生变化时,Nacos 不允许该服务实例类型发生变化,比如从临时实例变为非临时实例,或从非临时实例变成临时实例
5. 配置中心
配置中心就是对这些配置项进行统一管理,通过配置中心,可以集中查看,修改和删除配置,无需再逐个修改配置文件,提高效率的同时,也降低了出错的风险
讯享网
在微服务运行之前,Nacos要求必须使用 bootstrap.properties(或.yaml) 配置文件来配置 Nacos Server 地址
\({prefix}-\){spring.profiles.active}.\({file-extension} //dataId 的完整格式</p> </blockquote> <p>prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置<br /> spring.profiles.active 即为当前环境对应的 profile,当 spring.profiles.active为空时,对应的连接符-也将不存在,datald的拼接格式变成\){prefix}.${file-extension},file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型,默认为 properties
微服务启动时,会从 Nacos 读取多个 dataId 配置项并监听(当存在多个dataId 时,(以上述dataId 为例)优先级 为 dataId=oj-manage-dev.yaml > dataId=oj-manage.yaml > dataId=oj-manage)



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/204422.html