springCloudAlibaba组件-Nacos-服务注册与心跳机制(二)

简介: springCloudAlibaba组件-Nacos-服务注册与心跳机制(二)

nacos服务注册流程图

专业术语

1.服务注册:为了将所有的微服务都方便管理,需要将自身的信息(ip地址、端口号、服务名称)以http请求方式调用nacos注册中心接口都放到nacos服务列表中,统一管理。(微服务开启时自动会获取将所处的ip地址、端口号、服务名称,先开启心跳机制,并将这些信息注册到nacos的服务中服务列表中,通过服务中心来管理这些微服务)

2.心跳机制:

1)目的:是每个服务和Nacos保持沟通和交换信息的机制

2)心跳机制的两种形式

临时实例

1)使用场景:动态扩缩容:当服务实例根据负载自动增加或减少时,可以使用临时实例。例如,使用Kubernetes或Docker等容器技术来动态扩展或收缩实例。临时性服务:对于短期运行的任务或服务,可以使用临时实例。一旦任务完成或服务停止,实例将自动注销并从Nacos注册中心中删除。(客户端实例发起心跳机制,服务端处理请求)

2)流程:服务启动后每隔5秒会向Nacos发送一个“心跳包”,这个心跳包中包含了当前服务的基本信息,Nacos接收到这个心跳包,首先检查当前服务在不在注册列表中,如果不在按新服务的业务·进行注册,如果在,表示当前这个服务是健康的。

3)特点:采用客户端心跳检测模式,心跳检测周期5秒

心跳间隔超过15秒(默认)则标记为不健康

心跳间隔超过30秒(默认)则从服务列表删除

永久实例

1)使用场景:长期持续运行的服务:对于一直运行的服务,可以使用永久实例。这些服务通常是持久性的,不会在短时间内停止或变化。重要性较高的服务:如果服务对于业务运行的重要性较高,需要持久地注册和心跳发送,可以选择永久实例。这样可以确保服务实例的状态一直可用,即使在网络中断或注册中心重启后也能够重连并继续服务。

2)遍历所有永久实例并加入阻塞队列 从队列中获取实例,与实例尝试建立连接,进行超时判断处理

3)特点:采用服务端主动健康检测方式

周期为2000 + 5000毫秒内的随机数

检测异常只会标记为不健康,不会删除

配置实例的不同方式

服务注册执行流程

1.客户端:服务提供者向Nacos注册中心注册服务:服务提供者启动时会先开启心跳机制,然后向Nacos注册中心发送一个注册请求,包括服务名、服务IP地址、端口号等信息。(对给定的URI模板执行HTTP方法,将给定的请求实体写入请求,并返回)

2.服务端:Nacos注册中心将服务信息存储到自己的服务注册表中:注册中心会将服务提供者发送的服务信息存储到自己的服务注册表中

将请求参数(服务名、服务IP地址、端口号)校验后注册实例,

本地通过一个Map保存所有的服务信息,注册实质就是向map中添加信息

先创建空服务,更新服务中的实例信息

服务创建启动初始化服务,启动心跳检测

向服务添加实例时候会判断实例是永久性实例还是临时实例,不同类型实例有不同处理方式

注册后同时会发布服务变更事件

相关文章
|
2月前
|
Java Nacos 数据库
使用 nacos 搭建注册中心及配置中心
使用 nacos 搭建注册中心及配置中心
68 5
|
2月前
|
NoSQL Java Nacos
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
73 3
|
6天前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
1月前
|
负载均衡 监控 Java
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
|
2月前
|
Nacos 微服务
Zookeeper 的 ZAB 协议 以及 zookeeper 与 nacos 注册中心比对
Zookeeper 的 ZAB 协议 以及 zookeeper 与 nacos 注册中心比对
40 4
|
2月前
|
监控 安全 网络安全
inishConnect(..) failed: Connection refused,服务本地正常服务器网关报400,nacos服务实例不能下线
总之,这种问题需要通过多方面的检查和校验来定位和解决,并可能需要结合实际环境的具体情况来进行相应的调整。在处理分布式系统中这类问题时,耐心和细致的调试是必不可少的。
68 13
|
1月前
|
Java Nacos Docker
"揭秘!Docker部署Seata遇上Nacos,注册成功却报错?这些坑你不得不防!一网打尽解决秘籍,让你的分布式事务稳如老狗!"
【8月更文挑战第15天】在微服务架构中,Nacos搭配Seata确保数据一致性时,Docker部署Seata后可能出现客户端连接错误,如“can not connect to services-server”。此问题多由网络配置不当、配置文件错误或版本不兼容引起。解决策略包括:调整Docker网络设置确保可达性;检查并修正`file.conf`和`registry.conf`中的Nacos地址和端口;验证Seata与Nacos版本兼容性;修改配置后重启服务;参考官方文档和最佳实践进行配置。通过这些步骤,能有效排除故障,保障服务稳定运行。
36 0
|
1月前
|
Kubernetes Nacos 微服务
【技术难题破解】Nacos v2.2.3 + K8s 微服务注册:强制删除 Pod 却不消失?!7步排查法+实战代码,手把手教你解决Nacos Pod僵死问题,让服务瞬间满血复活!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但有时会遇到“v2.2.3 k8s 微服务注册nacos强制删除 pod不消失”的问题。本文介绍此现象及其解决方法,帮助开发者确保服务稳定运行。首先需检查Pod状态与事件、配置文件及Nacos配置,确认无误后可调整Pod生命周期管理,并检查Kubernetes版本兼容性。若问题持续,考虑使用Finalizers、审查Nacos日志或借助Kubernetes诊断工具。必要时,可尝试手动强制删除Pod。通过系统排查,通常能有效解决此问题。
42 0
|
1月前
|
安全 Nacos 数据库
【技术安全大揭秘】Nacos暴露公网后被非法访问?!6大安全加固秘籍,手把手教你如何保护数据库免遭恶意篡改,打造坚不可摧的微服务注册与配置中心!从限制公网访问到启用访问控制,全方位解析如何构建安全防护体系,让您从此告别数据安全风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其公网暴露可能引发数据库被非法访问甚至篡改的安全隐患。本文剖析此问题并提供解决方案,包括限制公网访问、启用HTTPS、加强数据库安全、配置访问控制及监控等,帮助开发者确保服务安全稳定运行。
83 0
|
1月前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
79 0