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月前
|
缓存 安全 Nacos
nacos常见问题之服务一直在报token expired!如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
91 0
|
2月前
|
网络协议 Java Nacos
nacos常见问题之在web界面 上下线服务时报错 400如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
37 0
|
2月前
|
缓存 PHP Nacos
nacos常见问题之服务升级后nacos控制台看到都是不可用重启nacos后恢复如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
44 4
|
1天前
|
安全 Linux Nacos
如何使用公网地址远程访问内网Nacos UI界面查看注册服务
如何使用公网地址远程访问内网Nacos UI界面查看注册服务
14 0
|
9天前
|
Cloud Native Java Nacos
Nacos 1.4.1核心功能组件及使用入门
以上步骤提供了 Nacos 1.4.1 的基本使用概览,具体的配置和使用可能根据你的环境和需求有所不同。
|
15天前
|
负载均衡 Cloud Native Java
Nacos 注册中心(2023旧笔记)
Nacos 注册中心(2023旧笔记)
18 0
|
1月前
|
Dubbo Java 应用服务中间件
深度剖析:Dubbo使用Nacos注册中心的坑
2020年笔者在做微服务部件升级时,Dubbo的注册中心从Zookeeper切换到Nacos碰到个问题,最近刷Github又有网友提到类似的问题,就在这篇文章里做个梳理和总结。
深度剖析:Dubbo使用Nacos注册中心的坑
|
1月前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
|
1月前
|
Dubbo Java 应用服务中间件
双活工作下的数据迁移:Nacos注册中心实战解析
这篇内容介绍了如何使用NacosSync组件进行双活项目中的注册中心数据迁移。首先,准备包括64位OS、JDK 1.8+、Maven 3.2+和MySQL 5.6+的环境。接着,获取并解压NacosSync安装包,配置数据库连接,启动服务,并通过访问特定URL检查系统状态。然后,通过NacosSync控制台进行集群配置,添加Zookeeper和Nacos集群,并设置同步任务。当数据同步完成后,Dubbo客户端(Consumer和Provider)更新配置以连接Nacos注册中心。最后,迁移完成后,原有的Zookeeper集群可下线,整个过程确保了服务的平滑迁移。
38 1
|
2月前
|
XML Dubbo Java
【Dubbo3高级特性】「框架与服务」 Nacos作为注册中心-服务分组及服务分组聚合实现
【Dubbo3高级特性】「框架与服务」 Nacos作为注册中心-服务分组及服务分组聚合实现
63 0