SpringBoot Alibaba of Nacos

什么是Nacos

Nacos 是阿里巴巴为淘宝在高并发流量困境下所开发的一套云原生组件,主要功能是作为注册中心和配置管理,拥有良好的拓展性、可用性、易用性等优点,经历了淘宝双11的高并发场景,性能也是由实践验证后证实其可靠程度。

Nacos 配置模块概念

1、NameSpace

命名空间的主要作用就是在隔离在不同环境下项目的不同配置,常用的应用场景就是在开发环境与测试环境、生产环境等不同的服务器下使用不同的配置。如果不设置命名空间,则会默认使用public命名空间。

2、Group

Nacos 中的⼀组配置集,是配置的维度之⼀。通过⼀个有意义的字符串(如ABTest 中的实验组、对照组)对配置集进行分组,从而区分 Data ID 相同的配置集。当您在Nacos 上创建⼀个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。配置分组的常见场景:不同的应用或组件使用了相同的配置项,如database_url 配置和 MQ_Topic 配置
在这里插入图片描述

3、Nacos配置模型

在这里插入图片描述

Nacos一致性协议

Nacos中同时实现了AP和CP模式,两种模式中取决于服务注册时选择的节点类型,有临时节点和永久节点两种不同的类型。而两种不同的节点之间实现不一样的模式,根据底层实现的不同也采用了不同的一致性算法。

Nacos中临时节点和永久节点

临时节点也被称为非持久化节点,临时节点会定时向Nacos上传心跳,如果一定时间内没有接收到心跳,Nacos会认为该实例不健康,再经过一段时间则会删除该不健康实例。相对应的永久节点,也是持久化节点,作为Nacos服务端全程保持连接的服务,服务下的实例如果断开连接,Nacos会主动发起健康监测,询问对应实例是否健康,如果没有返回则视为实例断开连接。在Nacos2.0中,持久化作为注册服务时需要填写的属性,一般来说持久化节点保存的是业务的基础服务,没有这类服务则核心业务不可用,非持久化节点作为动态发现的主要对象,保存的一般是业务功能,不影响核心功能的拓展业务。

Raft算法和Distro算法

Raft算法作为强一致性算法,需要满足多数原则才能算通过数据同步,在nacos中作为临时节点无法保证节点可靠性,如果半数以上的临时节点断开连接那么nacos就会无法满足算法要求而下线,显然不太适合使用Raft。所以nacos研发了一套Distro算法应用于临时节点,大致思路写请求是通过访问任意服务器,服务器会根据你的key转发至负责该范围key的服务器,将写请求平均分配到每个服务器上,然后由服务器在写入之后定时对其他服务器进行数据同步。新加入的服务器则需要全量拉取数据进行同步,Distro集群会有心跳机制,保证元数据一致。
在这里插入图片描述

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值