文章目录
- 1.Nacos简介
- 2.Nacos的安装
- 2.1Nacos Windows本地启动不成功?
- 2.2Linux环境下载并启动
- 3. Nacos的使用
- 4.Nacos的负载均衡
- 5.Nacos 健康检查
- 6.Nacos 环境隔离
- 7.Nacos 配置中心
- 7.1为什么需要配置中心
- 7.2 Nacos配置中心使用
- 7.3 Data id
- 7.4Nacos 上Linux部署服务
- 7.5 Nacos 和 Eureka的区别
大家好,我是晓星航。今天为大家带来的是 注册中心的其他实现-Nacos 相关的讲解!😀
1.Nacos简介
Nacos 是一个动态服务发现、配置和服务管理平台,提供注册中心、配置中心和动态DNS 服务三大功能。它是阿里巴巴开源的一款集成了动态服务发现、配置管理和服务管理功能的平台,旨在简化分布式系统开发和运维过程中服务发现与配置管理的复杂性。Nacos 是构建以“服务"为中心的现代应用架构的服务基础设施。
Nacos(Dynamic Naming and Configuration Service)
2.Nacos的安装
Nacos安装官网
下载好后,解压
目录介绍
bin目录下脚本介绍
最后将我们压缩包文件拖进虚拟机就可以
2.1Nacos Windows本地启动不成功?
Nacos默认启动模式默认是集群模式
找到启动脚本,使用编辑器打开(可以是记事本也可以是vscode等编辑器)
找到模式选择的地方
更改为单机模式,然后保存关闭
此时再次双击启动脚本会发现,我们的Nacos就启动成功了,并且端口为8848
然后打开浏览器,通过网页访问:
出现上图页面即代表我们启动成功了
如果是端口号占用打不开的话,我们可以选择更改Nacos的端口号
使用记事本打开上图文件
更改23行的端口号并保存,我们Nacos便会更改启动端口号
2.2Linux环境下载并启动
进入src文件夹再进行拖拽上传
cd /usr/local/src
直接将本地的Nacos压缩包拖到Linux虚拟机上即可
上传完毕后执行解压命令
unzip nacos-server-2.2.3.zip
解压完毕后我们通过ls命令查看一下
然后进入bin目录,启动Nacos
cd bin/sh startup.sh -m standalone
我们先去/nacos/conf/目录中的application.properties文件中查看一下端口号
vim application.properties
使用上面代码即可进入查看,按一下i就能编辑然后可以上下查阅。退出按一下esc并输入:wq保存。
从上面日志可以看到我们这里的端口号为8848,但是我们直接访问是不能成功的,我们要先去云服务器上添加一个放行端口8848才能成功访问。
博主使用的是腾讯云,这里就是拿腾讯云的添加放行端口来举例。
然后我们输入Linux虚拟机ip加端口号的方式访问一下Nacos页面
ip:8848/nacos
出现上图即代表我们Linux上也安装成功了
3. Nacos的使用
1.引入spring-cloud-alibaba的依赖
2.引入Nacos相关的依赖(引入Nacos依赖以及Loadbalance依赖)
3.修改配置
4.远程调用
5.测试
如果服务挂不上去可能是因为alibab版本问题导致的,更改版本为适配的版本就可以了
4.Nacos的负载均衡
开启Nacos的负载均衡策略
#开启nacos的负载均衡策略
spring.cloud.loadbalancer.nacos.enabled=truespring:cloud:loadbalancer:nacos:enabled: true
4.1同级群优先访问
同机房优先访问
例如这里设置机房就为北京机房,我们服务会优先访问北京机房
1.服务上线/下线
2.服务配置权重(非严格)
3.同集群优先访问
上述2,3需要开启Nacos负载均衡才有效果
5.Nacos 健康检查
Nacos 健康检查机制
客户端主动上报机制:
- 客户端通过心跳上报方式告知服务端(nacos注册中心)健康状态,默认心跳间隔5秒
- nacos会在超过15秒未收到心跳后将实例设置为不健康状态,超过30秒将实例删除
临时实例
服务器端反向探测机制:
- nacos主动探知客户端健康状态,默认间隔为20秒
- 健康检查失败后实例会被标记为不健康,不会被立即删除.
非临时实例,永久实例
服务节点,默认为临时实例
临时实例采用客户端主动上报
非临时实例采用的是服务器反向探测
Nacos会记录每一个实例的IP,端口号以及实例类型
不允许 临时实例改为非临时实例,非临时实例也不允许改为临时实例
如果需要修改,需要删除掉nacos 的相关数据信息
1.停止nacos
2.删除数据信息 data\protocol\raft
3.重启nacos
可以看到虽然这里的临时实例和健康状态都为false,但是他没有下线
6.Nacos 环境隔离
1.开发环境
2.测试环境
3.预发布环境
4.发布环境
预发布环境 和 发布环境 都是正式环境,通常情况下,配置,数据库都是一样的。区别就是:预发布环境不对外,发布环境对外,外面的用户可以访问到
在新增完分组空间后,我们去配制管理里面查看一下
发现我们这里确实新增了我们刚添加的分组,之后配置管理的时候分类管理便成功了。
7.Nacos 配置中心
7.1为什么需要配置中心
当前项目的配置都在代码中,会存在以下问题:
- 配置文件修改时,服务需要重新部署,微服务架构中,一个服务可能有成百个实例,挨个部署比较麻烦,且容易出错.
- 多人开发时,配置文件可能需要经常修改,使用同一个配置文件容易冲突
配置中心就是对这些配置项进行统一管理.通过配置中心,可以集中查看,修改和删除配置,无需再逐个修改配置文件.提高效率的同时,也降低了出错的风险.
7.2 Nacos配置中心使用
1.添加配置
2.引入依赖
3.修改配置文件
编写程序,运行使用
注:这里的@RefreshScope作用是让我们的程序能实时更新
7.3 Data id
优先级排序:
7.4Nacos 上Linux部署服务
1.修改相关配置,并进行本地测试
2.打包,上传到服务器
3.启动Nacos
4.测试
7.5 Nacos 和 Eureka的区别
共同点:
- 都支持服务注册和服务拉取
区别:
1.功能
Nacos除了服务发现和注册之外,还提供了配置中心,流量管理和DNS服务等功能.
2.CAP理论
Eureka遵循AP原则,Nacos可以切换AP和CP模式,默认AP.
Nacos 根据配置识别CP或者AP模式.如果注册Nacos的Client的节点是临时节点,那么Nacos对这个
Client节点的效果就是AP,反之是CP.AP和CP可以同时混合存在:
3.服务发现
Eureka:基于拉模式.Eureka Client会定期从Server拉取服务信息,有缓存,默认每30秒拉取一次.
Nacos:基于推送模式.服务列表有变化时实时推送给订阅者,服务端和客户端保持心跳连接
感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘