微服务 配置中心 Nacos 图2

微服务 配置中心 Nacos 图2_第1张图片

服务发现

服务注册与发现

微服务 配置中心 Nacos 图2_第2张图片


 

  • 服务元数据 (Service Metadata)

服务发现注册所需数据

服务元数据是指包括服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规则、安全策略等描述服务的数据。

  • Name Service

根据服务名称寻址到IP

提供分布式系统中所有对象(Object)、实体(Entity)的“名字”到关联的元数据之间的映射管理服务,例如 ServiceName -> Endpoints Info, Distributed Lock Name -> Lock Owner/Status Info, DNS Domain Name -> IP List, 服务发现和 DNS 就是名字服务的2大场景

  • Open API

对外提供http接口

暴露标准Rest风格HTTP接口,简单易用,方便多语言集成

  • Service Provider

服务提供者, 调用OpenAPI向Nacos服务器注册服务

  • Service Consumer

服务消费者, 没10秒钟请求一次服务列表.

服务端通过UDP通知消费端服务状态信息.

  • 服务实例

临时实例 & 永久实例

对应健康检查机制

  • 临时实例

客户端主动上报机制

临时实例每隔 5 秒会主动上报一次自己的健康状况,发送的数据包叫做心跳包,发送心跳包的机制叫做心跳机制。
如果心跳包的间隔时间超过了 15 秒,那么 Nacos 服务器端就会将此服务实例标记为非健康实例,如果心跳包超过了 30s 秒,那么 Nacos 服务器端将会把此服务实例从服务列表中删除掉

  • 永久实例

服务端反向探测机制

永久实例使用的服务器端反向探测的方式实现健康检查的,它的探测周期是 2000 毫秒 + 随机数(5000 毫秒以内),如果检测异常会将此服务实例,标记为非健康实例,但不会把服务实例向临时实例那样进行删除.

Nacos 服务器反向探测目前内置了 3 种探测协议:HTTP 探测、TCP 探测和 MySQL 探测

健康检查(服务端探测、客户端心跳)

Nacos 中提供了两种健康检查机制

  • 客户端主动上报机制
  • 服务器端反向探测机制

路由策略(权重、保护阈值、就近访问)

  • 权重

每个实例配置的分发请求的优先级比例  总和为1

  • 保护阈值

健康实例数/总实例数, 0~1间的数值

保护阈值的意义在于

当服务A健康实例数/总实例数 < 保护阈值 的时候,说明健康实例真的不多了,这个时候保护阈值会被触发(状态true)

nacos将会把该服务所有的实例信息(健康的+不健康的)全部提供给消费者,消费者可能访问到不健康的实例,请求失败,但这样也⽐造成雪崩要好,牺牲了⼀些请求,保证了整个系统的⼀个可⽤

  • 就近访问

通过Nacos的CMDB(Configuration Management Database), 优先访问就近的服务提供者

配置管理

配置管理(发布、修改、查询、监听配置)

Nacos配置管理会通关通过Namespace、group、Data ID来定位到一个配置

灰度配置

灰度配置指的是指定部分客户端IP进行新配置的下发,其余客户端配置保持不变

地址服务器模块

支持Nacos寻址

元数据管理

对接第三方CMDB

你可能感兴趣的:(微服务,微服务)