分布式注册中心 nacos-30-Nacos 注册中心服务数据模型
Nacos 注册中心服务数据模型
在上文 Nacos 注册中心的设计原理中,简要介绍了服务发现的背景、业界对动态服务发现的解决方案及 Nacos 针对动态服务发现的总体设计思路,让读者对服务发现及 Nacos 的注册中心有了一个框架性的了解。
从本文开始,本书将展开介绍 Nacos 注册中心中的各种技术概念、细节及设计,帮助读者更好地理解 Nacos 注册中心。
本节将较为详尽的展开介...
2022-07-02 01:22:02 |
Distributed
分布式注册中心 nacos-29-Nacos 注册中心的设计原理
前言
服务发现是一个古老的话题,当应用开始脱离单机运行和访问时,服务发现就诞生了。
目前的网络架构是每个主机都有一个独立的 IP 地址,那么服务发现基本上都是通过某种方式获取到服务所部署的 IP 地址。
DNS 协议是最早将一个网络名称翻译为网络IP的协议,在最初的架构选型中,DNS+LVS+Nginx 基本可以满足所有的 RESTful 服务的发现,此时服务的IP列表通常配置在 ng...
2022-07-02 01:22:02 |
Distributed
分布式注册中心 nacos-28-Nacos 寻址机制
前提
Nacos 支持单机部署以及集群部署,针对单机模式,Nacos 只是自己和自己通信;
对于集群模式,则集群内的每个 Nacos 成员都需要相互通信。
因此这就带来一个问题,该以何种方式去管理集群内的 Nacos 成员节点信息,而这,就是 Nacos 内部的寻址机制。
设计
无论是单机模式,还是集群模式,其根本区别只是Nacos成员节点的个数是单个还是多个,并且,要能够感知到节...
2022-07-02 01:22:02 |
Distributed
分布式注册中心 nacos-27-Nacos 通信通道
Nacos长链接
一.现状背景
Nacos 1.X 版本 Config/Naming 模块各自的推送通道都是按照自己的设计模型来实现的。
产品
推送模型
数据一致性
痛点
说明
Nacos Config
异步 Servlet
基于MD5比对一...
2022-07-02 01:22:02 |
Distributed
分布式注册中心 nacos-26-Nacos 自研 Distro 协议
背景
Distro 协议是 Nacos 社区自研的一种 AP 分布式协议,是面向临时实例设计的一种分布式协议,其保证了在某些 Nacos 节点宕机后,整个临时实例处理系统依旧可以正常工作。
作为一种有状态的中间件应用的内嵌协议,Distro 保证了各个 Nacos 节点对于海量注册请求的统一协调和存储。
设计思想
Distro 协议的主要设计思想如下:
Nacos ...
2022-07-02 01:22:02 |
Distributed
分布式注册中心 nacos-25-Nacos Consistency Protocols 一致性协议
为什么 Nacos 需要一致性协议
Nacos 在开源支持就定下了一个目标,尽可能的减少用户部署以及运维成本,做到用户只需要一个程序包,就可以快速以单机模式启动 Nacos 或者以集群模式启动 Nacos。
而 Nacos 是一个需要存储数据的一个组件,因此,为了实现这个目标,就需要在 Nacos 内部实现数据存储。
单机下其实问题不大,简单的内嵌关系型数据库即可;但是集群模式下,就需...
2022-07-02 01:22:02 |
Distributed
分布式注册中心 nacos-24-Nacos 配置模型
背景
在单体架构的时候我们可以将配置写在配置文件中,但有一个缺点就是每次修改配置都需要重启服务才能生效。
当应用程序实例比较少的时候还可以维护。
如果转向微服务架构有成百上千个实例,每修改一次配置要将全部实例重启,不仅增加了系统的不稳定性,也提高了维护的成本。
那么如何能够做到服务不重启就可以修改配置?
所有就产生了四个基础诉求:
需要支持动态修改配置
...
2022-07-02 01:22:02 |
Distributed
分布式注册中心 nacos-23-Nacos 架构
Nacos 架构
Nacos 开源之前在阿里内部已经发展了十年,沉淀了很多优秀的能力,也有很多历史负担,在开源的时候我们取其精华进行开源,为了提升代码的健壮性和扩展性,进行了充分的分层和模块化设计。
设计原则
极简原则,简单才好用,简单才稳定,简单才易协作
架构一致性,一套架构要能适应开源、内部、商业化(公有云及专有云)3 个场景
...
2022-07-02 01:22:02 |
Distributed