如何建设微商网站,网站初期建设宣传,wordpress产品发布插件,企业网络推广平台背景
服务发现是⼀个古老的话题#xff0c;当应用开始脱离单机运行和访问时#xff0c;服务发现就诞生了。目前的网络架构是每个主机都有⼀个独立的 IP 地址#xff0c;那么服务发现基本上都是通过某种方式获取到服务所部署的 IP 地址。DNS 协议是最早将⼀个网络名称翻译…背景
服务发现是⼀个古老的话题当应用开始脱离单机运行和访问时服务发现就诞生了。目前的网络架构是每个主机都有⼀个独立的 IP 地址那么服务发现基本上都是通过某种方式获取到服务所部署的 IP 地址。DNS 协议是最早将⼀个网络名称翻译为网络 IP 的协议在最初的架构选型中DNSLVSNginx 基本可以满足所有的 RESTful 服务的发现此时服务的 IP 列表通常配置在 nginx或者 LVS。后来出现了 RPC 服务服务的上下线更加频繁人们开始寻求⼀种能够支持动态上下线并且推送 IP 列表变化的注册中心产品。
服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务原则上都应存在或者支持多个提供者这是由微服务的分布式属性决定的。更进一步为了支持弹性扩缩容特性一个微服务的提供者的数量和分布往往是动态变化的也是无法预先确定的。因此原本在单体应用阶段常用的静态LB机制就不再适用了需要引入额外的组件来管理微服务提供者的注册与发现而这个组件就是服务注册中心。
Nacos诞生
Nacos是阿里巴巴开源的一个对微服务架构中服务发现配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。 Nacos Spring Cloud注册中心 Spring Cloud配置中心。 Nacos功能特征 服务发现与健康监测Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Agent TODO注册 Service 后服务消费者可以使用DNS TODO 或HTTPAPI查找和发现服务。Nacos 提供对服务的实时的健康检查阻止向不健康的主机或服务实例发送请求。 动态配置管理动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。动态配置消除了配置变更时重新部署应用和服务的需要让配置管理变得更加高效和敏捷。配置中心化管理让实现无状态服务变得更简单让服务按需弹性扩展变得更容易。 动态DNS服务动态 DNS 服务支持权重路由让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。 服务和元数据管理Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。 Nacos地图 特性大图要从功能特性非功能特性全面介绍我们要解的问题域的特性诉求架构大图通过清晰架构让您快速进入 Nacos 世界业务大图利用当前特性可以支持的业务场景及其最佳实践生态大图系统梳理 Nacos 和主流技术生态的关系优势大图展示 Nacos 核心竞争力战略大图要从战略到战术层面讲 Nacos 的宏观优势 Nacos生态图 Nacos概念
命名空间
用于进行租户粒度的配置隔离。不同的命名空间下可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离例如开发测试环境和生产环境的资源如配置、服务隔离等。
配置集ID
Nacos 中的某个配置集的 ID。配置集 ID 是组织划分配置的维度之一。Data ID 通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集每个配置集都可以被一个有意义的名称标识。Data ID 通常采用类 Java 包的命名规则保证全局唯一性。此命名规则非强制。
配置分组
Nacos 中的一组配置集是组织配置的维度之一。通过一个有意义的字符串如 Buy 或 Trade 对配置集进行分组从而区分 Data ID 相同的配置集。当您在 Nacos 上创建一个配置时如果未填写配置分组的名称则配置分组的名称默认采用 DEFAULT_GROUP 。配置分组的常见场景不同的应用或组件使用了相同的配置类型如 database_url 配置和 MQ_topic 配置。
健康检查
以指定方式检查服务下挂载的实例 (Instance) 的健康度从而确认该实例 (Instance) 是否能提供服务。根据检查结果实例 (Instance) 会被判断为健康或不健康。对服务发起解析请求时不健康的实例 (Instance) 不会返回给客户端。
健康保护阈值
为了防止因过多实例 (Instance) 不健康导致流量全部流向健康实例 (Instance) 继而造成流量压力把健康实例 (Instance) 压垮并形成雪崩效应应将健康保护阈值定义为一个 0 到 1 之间的浮点数。当域名健康实例数 (Instance) 占总服务实例数 (Instance) 的比例小于该值时无论实例 (Instance) 是否健康都会将这个实例 (Instance) 返回给客户端。这样做虽然损失了一部分流量但是保证了集群中剩余健康实例 (Instance) 能正常工作。 领域模型
数据模型
Nacos 数据模型 Key 由三元组唯一确定, Namespace默认是空串公共命名空间public分组默认是 DEFAULT_GROUP。
作为注册中心时Namespace Group Service作为配置中心时Namespace Group DataId
Namespace命名空间
用于进行租户粒度的配置隔离。默认为 public公共命名空间。
不同的命名空间下可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离例如开发测试环境和生产环境的资源如配置、服务隔离等。
Group服务分组
不同的服务可以归类到统一分组。默认为DEFAULT_GROUP默认分组 配置领域模型
围绕配置主要有两个关联的实体一个是配置变更历史一个是服务标签用于打标分类方便索引由 ID 关联。