分布式注册中心 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
分布式注册中心 nacos-22-NACOS 简介
Nacos 起源
Nacos 在阿里巴巴起源于 2008 年五彩石项目(完成微服务拆分和业务中台建设),成长于十年双十一的洪峰考验,沉淀了简单易用、稳定可靠、性能卓越的核心竞争力。
随着云计算兴起,2018 年我们深刻感受到开源软件行业的影响,因此决定将 Nacos(阿里内部 Configserver/Diamond/Vipserver 内核) 开源,输出阿里十年的沉淀,推动微服务行业发...
2022-07-02 01:22:02 |
Distributed