网站首页 > 博客文章 正文
Nacos注册中心是微服务的核心组件,也是大厂经常考察的内容,下面我就重点来详解Nacos注册中心@mikechen
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
微服务注册中心
微服务注册中心,是用于管理和、协调微服务架构中各个服务的组件。
比如:大家熟知的Eureka、Nacos...这些都是平常开发,经常使用到的注册中心。
Nacos 既可以作为服务注册中心,也可以作为配置中心,接下来我们详细解析 Nacos 注册中心功能原理@mikechen
Nacos注册中心原理
微服务,注册中心原理,主要会涉及到:服务注册、服务发现...等机制。
整体流程,如下图所示:
Nacos 的注册中心功能,依赖于以下3大关键组件:
1.Nacos Server
提供服务注册和发现的核心组件,负责管理服务实例、健康检查和服务列表的维护。
2.Nacos Client
服务提供者和消费者通过 Nacos Client 与 Nacos Server 进行通信,完成服务注册、发现以及心跳续约等功能。
3.Naming 模块
Nacos 的服务注册与发现模块。Nacos 将每个服务视为一个命名实体,客户端可以通过服务名动态发现可用的实例。
Nacos注册中心工作流程
整体工作流程,如下:
首先,是服务注册。
服务启动时,将其地址、和相关元数据,注册到注册中心。
比如:
- 服务名称(Service Name):服务的逻辑名称,用于区分不同的服务实例;
- 实例 ID(Instance ID):服务实例的唯一标识符,通常由服务名称、和实例的 IP、端口...等信息生成;
- IP 地址(IP Address):服务实例所在机器的 IP 地址;
- 端口(Port):服务运行的端口号,用于其他服务进行访问,比如:8020、8021...等等;
- 健康检查 URL(Health Check URL):注册中心使用该 URL 定期检查服务实例是否健康;
- 元数据(Metadata):额外的服务信息,可能包括服务版本、所在区域(Zone/Region)、负载情况...等。
示例,如下:
hostname: localhost # 实例的主机名
instance-id: my-service-1 # 实例 ID
prefer-ip-address: true # 是否使用 IP 地址注册
ip-address: 127.0.0.1 # 服务的 IP 地址
lease-renewal-interval-in-seconds: 10 # 心跳发送间隔
注册中心,会维护一张服务注册表,记录所有可用的服务实例,而且,当新的实例上线或离线时,注册表会更新。
其次是,服务发现
服务发现,指的是:服务消费者(Service Consumer)在需要调用其他服务时,向注册中心发送请求,询问某个服务的可用实例信息。
这里我以Nacos为例,比如:消费者请求某个服务时,Nacos返回可用的服务实例列表。
spring:
application:
name: service-a # 服务名称
cloud:
nacos:
discovery:
server-addr: localhost:8848 # Nacos 注册中心地址
然后,消费者根据负载均衡算法,选择一个服务实例。
常见的负载均衡算法,有包含:轮询、随机、最少连接.........等等。
如果 service-*** 有多个实例运行(例如:端口为 8081 、和 8082 的两个实例)。
Nacos 会自动处理服务实例的负载均衡,@LoadBalanced 注解会确保调用时自动选择一个可用的服务实例。
如下所示:
@Bean
@LoadBalanced // 开启负载均衡
public RestTemplate restTemplate() {
return new RestTemplate();
}
再次,就是健康检查
比如:注册中心监控服务的状态,如果某个服务实例不可用,会从注册表中移除。
注册中心,会定期检查已注册服务的健康状态,比如:主动探测(主动发起 HTTP 请求、或 TCP 连接)和被动探测(服务实例的心跳检测...等等)。
如果某个服务实例未能通过健康检查,注册中心会将其标记为不可用,并从注册表中移除该实例,防止客户端调用不可用的服务。
比如:Nacos 定期通过心跳检测服务实例的健康状况,如果某个实例失效,Nacos 会自动将其从可用实例列表中移除。
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
猜你喜欢
- 2024-10-01 微服务学习笔记(微服务怎么学)
- 2024-10-01 干货:SpringBoot集成Nacos,填坑篇
- 2024-10-01 记一次把Nacos做成服务并开机启动
- 2024-10-01 Nacos 配置中心与注册中心(nacos配置中心连接超时)
- 2024-10-01 小白入门必知必会-Nacos单机安装(nacos入门教程)
- 2024-10-01 windows系统 安装nacos服务注册与发现中心
- 2024-10-01 网络环境问题导致的nacos集群故障
- 2024-10-01 分布式服务限流降级熔断解决方案Nacos之Dashboard界面配置含义
- 2024-10-01 Nacos你真的理解了吗(nacos百科)
- 2024-10-01 java微服务环境配置——注册中心 配置中心Nacos
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 358℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)