【微服务】Nacos 配置管理模块

目录

一、Nacos 配置管理模块

1、配置⼀致性模型

2、Server 间的⼀致性协议

2.1、有 DB 模式(读写分离架构)

2.2、无 DB 模式

3、SDK 与 Server 的⼀致性协议

3.1、Nacos 1.X

3.2、Nacos 2.X

二、Nacos ⾼可⽤设计

1、全局高可用

2、同城容灾

3、数据多级容灾

微服务实战

 Spring家族及微服务系列文章 


一、Nacos 配置管理模块

1、配置⼀致性模型

    Nacos 配置管理⼀致性协议分为两个大部分,第⼀部分是 Server 间⼀致性协议,⼀个是 SDK 与Server 的⼀致性协议,配置作为分布式系统中非强⼀致数据,在出现脑裂的时候可用性高于⼀致性,因此阿里配置中心是采用 AP ⼀致性协议

2、Server 间的⼀致性协议

2.1、有 DB 模式(读写分离架构)

    ⼀致性的核心是 Server 与 DB 保持数据⼀致性,从而保证 Server 数据⼀致;Server 之间都是相等的。数据写任何⼀个 Server,优先持久化,持久化成功后异步通知其他节点到数据库中拉取最新配置值,并且通知写入成功【微服务】Nacos 配置管理模块_第1张图片

2.2、无 DB 模式

    Server 间采用 Raft 协议保证数据⼀致性,行业大部分产品采用此模式,因此不展开介绍。Nacos提供此模式,是方便用户本机运行,降低对存储依赖。

3、SDK 与 Server 的⼀致性协议

SDK 与 Server ⼀致性协议的核心是通过 MD5 值是否⼀致,如果不⼀致就拉取最新值。

3.1、Nacos 1.X

    Nacos 1.X 采用 Http 1.1 短链接模拟长链接,每 30s 发⼀个心跳跟 Server 对比 SDK 配置 MD5 值是否跟 Server 保持⼀致,如果⼀致就 hold 住链接,如果有不⼀致配置,就把不⼀致的配置返回,然后 SDK 获取最新配置值。【微服务】Nacos 配置管理模块_第2张图片

3.2、Nacos 2.X

    Nacos 2.x 相比上面 30s ⼀次的长轮训,升级成长链接模式,配置变更,启动建立长链接配置变更服务端推送变更配置列表,然后 SDK 拉取配置更新,因此通信效率大幅提升。

二、Nacos ⾼可⽤设计

    Nacos 历经 10 多年双十⼀考验,经历过多次断网,节点全挂,存储不可用各种故障,因此充分面对失败设计,沉淀了非常多的经验。

1、全局高可用

    Nacos 部署架构上是单 Region 封闭,Region 间独立,跨 Region 通过网关或者 Nacos-sync 完成服务互通。从而降低 Region 间网络故障风险。


    当然用户也可以跨 Region 组 Nacos 集群,但是这样会带来服务跨 Region 互调,真正发生网络故障的时候,无法控制业务影响。 因此不推荐此模式。【微服务】Nacos 配置管理模块_第3张图片

2、同城容灾

    Nacos 本身是采用 AP 的⼀致性模式,同 Region 多个可用区部署,任何⼀个可用区出问题,剩下部分继续工作。


    很多人问为什么不是三个可用区呢? 因为业务都部署三个可用区从理论上是可用性最好的,但是成本会大幅增加,因此⼀般公司只选择两个可用区【微服务】Nacos 配置管理模块_第4张图片

3、数据多级容灾

    Nacos 持久化存储做了主备容灾,而且底层存储数据多副本高可用保障。
Nacos Server 有全量缓存数据,即使存储挂或者不可用,只影响写,核心的读服务不受影响。
    Nacos
SDK 有所需服务和配置缓存,Server 即使全挂,走本地缓存,保证核心业务调用不受影响。【微服务】Nacos 配置管理模块_第5张图片

微服务实战

✨【微服务】SpringCloud的OpenFeign与Ribbon配置

✨集Oauth2+Jwt实现单点登录

✨Spring Cloud Alibaba微服务第29章之Rancher

✨Spring Cloud Alibaba微服务第27章之Jenkins

✨Spring Cloud Alibaba微服务第24章之Docker部署

✨Spring Cloud Alibaba微服务第23章之Oauth2授权码模式

✨Spring Cloud Alibaba微服务第22章之Oauth2

✨Spring Cloud Alibaba微服务第21章之分布式事务

✨Spring Cloud Alibaba微服务第18章之消息服务

✨Spring Cloud Alibaba微服务第16章之服务容错

✨Spring Cloud Alibaba微服务第14章之分库分表

✨Spring Cloud Alibaba微服务第11章之MyBatis-plus

✨Spring Cloud Alibaba微服务第8章之OpenFeign

✨Spring Cloud Alibaba微服务第7章之负载均衡Ribbon

✨SpringCloud Alibaba微服务第6章之Gateway

✨SpringCloud Alibaba微服务第4章之Nacos

✨SpringCloud Alibaba微服务开篇

 Spring家族及微服务系列文章 

✨【Spring】一文带你吃透IOC容器技术

✨【微服务】SpringCloud中OpenFeign请求处理及负载均衡流程

✨【微服务】SpringCloud中Ribbon的WeightedResponseTimeRule策略

✨【微服务】SpringCloud中Ribbon的轮询(RoundRobinRule)与重试(RetryRule)策略

✨【微服务】SpringCloud中Ribbon集成Eureka实现负载均衡

✨【微服务】SpringCloud轮询拉取注册表及服务发现源码解析

✨【微服务】SpringCloud微服务续约源码解析

✨【微服务】SpringCloud微服务注册源码解析

✨【微服务】Nacos2.x服务发现?RPC调用?重试机制?

✨【微服务】Nacos通知客户端服务变更以及重试机制

✨【微服务】Nacos服务发现源码分析

✨【微服务】SpringBoot监听器机制以及在Nacos中的应用

✨【微服务】Nacos服务端完成微服务注册以及健康检查流程

✨【微服务】Nacos客户端微服务注册原理流程

✨【微服务】SpringCloud中使用Ribbon实现负载均衡的原理

✨【微服务】SpringBoot启动流程注册FeignClient

✨【微服务】SpringBoot启动流程初始化OpenFeign的入口

✨Spring Bean的生命周期

✨Spring事务原理

✨SpringBoot自动装配原理机制及过程

✨SpringBoot获取处理器流程

✨SpringBoot中处理器映射关系注册流程

✨Spring5.x中Bean初始化流程

✨Spring中Bean定义的注册流程

✨Spring的处理器映射器与适配器的架构设计

✨SpringMVC执行流程图解及源码

你可能感兴趣的:(SpringCloud,微服务,架构,云原生)