3.2 Spring Cloud Alibaba Nacos 经典注册中心对比| 学习笔记

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 快速学习 3.2 Spring Cloud Alibaba Nacos 经典注册中心对比。

开发者学堂课程【Spring Cloud 微服务架构设计与开发实战 3.2 Spring Cloud Alibaba Nacos 经典注册中心对比】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/60/detail/1095


3.2 Spring Cloud Alibaba Nacos 经典注册中心对比

 

内容介绍

一、 Nacos 注册与发现服务

二、 Nacos 与 Eureka 对比

三、 Nacos 与其他主流注册中心对比

 

本节课主要讲解阿里巴巴开源的一些微服务框架,重点讲解 Nacos。

Nacos 是阿里开源的一个分布式注册中心服务,在之前可能看到过相似的技术,比如提到过的 Eureka。也留下了作业使大家研究 Eureka 是怎么定义垃圾回收的,怎么定义心跳的等。后面再总结,这里讲解 Nacos。

Nacos 其实借鉴了 Eureka 一些设计的思想,包括等等这些经典的分布式,注册型工具类的一些思想。当然现在出现的比较晚,功能也是最强大,目前来看做的非常好,很多公司也在大量的去使用 Nacos 来替代 Eureka。包括 Nacos 本身设计出来并不是只给C服务,或者只给 Spring Cloud 用,也给其他包括一些传统的分布式程序,包括 go 语言或者其他语言也可以使用,这就是 Nacos 比较强大的地方之前的内容、旧的内容也可以使用 Nacos 进行改造。

接下来来看 Nacos 哪些地方做的比较好。


一、Nacos 注册与发现服务

image.png

1. Nacos

Dynamic Naming and Configuration Service

Nacos 实际上就是动态的命名和配置服务。之前讲解 Eureka 的时候主要是注册中心服务,可以注册进去也可以查找,这是其起的主要作用。而现在 Nacos 实际是两个都可以干,既可以在里面保存配置信息,并且可以动态的推动集群服务,等于是两大功能于一身。不管是做前端开发、后端开发、h5开发等,使用了这个工具,就可以称其为“全能工程师”。Nacos 诞生的比较晚,做得好的原因是借鉴了很多前辈经典的内容和设计的思想,而且后面也做的比较“接地气”。

(1)Nacos 微服务动态服务发现、配置管理和服务管理工具平台。

2Nacos 致力于帮助发现、配置和管理微服务。

3Nacos 帮助更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。

4Nacos 支持几乎所有主流的“服务”的发现、配置和管理:

5Kubernetes Service

6gRPC & Dubbo RPC Service

7Spring Cloud RESTful Service

8)https://nacos.io

Nacos 不仅能够做出动态服务发现,还可以做配置服务器配置服务器在这里面在生产环境下比较重要的一点就在这个地方因为微服务是集群,这里如果有1000台,用户在生产环境下的不可能手动,每次部署的时候手动改文件,这个过程特别复杂工作量非常大,而且不及时。那么怎么办呢?有个叫在线动态更新,所以使用它再配置服务,用户更新完以后可以做灰度发布直接去做推送推送完以后更新到应用程序发布比如说更新一个限流的参数或者更新一个数据库命名的密码都可以所以就很便利。但是现在比较有意思的就是 Nacos 实地支持的不仅仅是 Spring Cloud,并不是表示 Service 服务,Spring Cloud 服务,Dubbo,包括 go 语言,包括其他类型的程序也都可以和它进行继承。它是一个支持更多种类客户端的注册中心。现在注册中心工具越来越多,越来越好。Nacos 出现以后在这一块填补了阿里开源的生态一个空白这是它的主要的一个特色。现在来看其实在Spring Cloud 这一块用的非常顺手,到时候再演示一下。

2. Alibaba 微服务组件

(1)Sentinel把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

2Nacos一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

3RocketMQ一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。

4DubboApache DubboTM是一款高性能 Java RPC 框架。

5Seata阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。

6Alibaba Cloud ACM一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品。

7Alibaba Cloud OSS阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

8Alibaba Cloud SchedulerX阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。

9Alibaba Cloud SMS覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

Nacos 是非常重要的工具,自从 Nacos 发布以后都可以使用,目前在国内有很多公司都在使用 Spring Cloud 做微服务,Eureka 会被替换掉,因为阿里开发的微服务组件很好用;Dubbo 的影响力也很大也很好用;Seata 是做了一个很重要的高性能微服务分布式事务解决方案,这个在 Spring Cloud 是没有的,在其他语言也没有。这就是 Seata 比较强的地方,它有自己的实现。

3. Nacos全景图:

image.png

它们的生态是非常强大的,Spring Cloud 只是其中的一块,还有 CLOUD NATIVE 的知识,Dubbo 的知识,多租户的云账号知识等。在这里要稍微注意一下,因为和它相似的技术有很多,比如 Consul、NETFLIX Eureka、zookeep、etcd 等,还有很多。这里是了解 Nacos 的规划目标,用户现在使用 Nacos 也还是比较方便的,对于做微服务集群的开发和线上的部署发布、会用发布,支持的都是比较好的。之后会给大家演示包括怎样将之前的微服务改造过来。

4. Nacos 关键特性

服务发现和服务健康监测

动态配置服务

动态 DNS 服务

服务及其元数据管理

改造的时候要注意一个问题,之前开发 Eureka 的服务的时候通过下导,包括更新 pom 文件去更改参数加些注解更改配置就容易上线。而现在 Nacos 是一个独立的,不需要那么复杂,但是改造工作还是要做,在后面将会演示怎么使用管理界面和管制微服务,这里也很重要。还支持动态 DNS,动态配置服务。在公司使用微服务可能是以二点二零几为主,比如二点一零几、二点二零几、二点三零几。二点四零几是基于 Spring boot 大版本,作为主流。

 

二、Nacos 与 Eureka 对比

Nacos 对比 Eureka

对比项目/注册中心

Spring Cloud Nacos

Spring Cloud Eureka

CAP 模型

支持AP和CP模型

AP模型

客户端更新服务信息

使用注册+DNS-f+健康检查模式。DNF-F客户端使用监听模式

push/pull拉取更新信息

客户端定时轮询服务端获取其他服务ip信息并对比,相比之下服务端压力较大、延迟较大

伸缩性

使用Raft选举算法性能、可用性、容错性均比较好,新加入节点无需与所有节点互相广播同步信息

由于使用广播同步信息,集群超过1000台机器后对eureka集群压力很大

健康检查模式/方式

支持服务端/客户端/关闭检查模式,检查方式有tcp、http、sql。支持自己构建健康检查器

客户端向服务端发送http心跳

负载均衡

支持

支持

手动上下线服务方式

通过控制台页面和API

通过调用API

跨中心同步

支持

不支持

k8s 集成 

支持

不支持

分组

Nacos可用根据业务和环境进行分组管理

不支持

权重

Nacos默认提供权重设置功能,调整承载流量压力

不支持

厂商

阿里巴巴

Netflix

接下来了解 Nacos 和 Eureka 具体详细的对比。

在这里面主要强调的是 Eureka 的 AP 模型,主要是可用性,不强调数据一致性;而Nacos两个都可以,因为它有集群模式,也有强一致性模式。负载均衡都有,比较有意思的是 Eureka 集群是1000台以内的,属于是中小型集群;Nacos 主要是通过淘宝这种大规模的,十万级别量级服务式的验证。规模量级是不一样的,要知道部署十台、一百台、一千台,服务器的压力完全是不一样的,包括监控的压力、广播的计时性问题、配置的推送力问题都不在一个级别上。所以像淘宝双十一的时候负载量是超过十万个,是高并发的架构(一般高并发架构都以淘宝为例)。Nacos 是诞生的比较晚,可以划数据中心。Netflix 主要是与公司的规划利益问题而陷入冷战期,新发布的核心组件已经替换的差不多了。使用 Nacos 会发现功能更强了,更符合中国的互联网公司的使用习惯,工作也比较强。而且经过了大规模集群的检验,是没有问题的,所以可以放心使用。在中国这一块是阿里领头的 Java 社区,它的整个社区的气氛包括和开发项目的活跃度都是世界级的,可以和其他世界级的公司项目进行对比,这是比较好的一点,在这里学习的过程中能够快速的提升自己的基本能力,包括在实际项目中的使用。

 

三、Nacos 与其他主流注册中心对比

Nacos 与其他主流注册中心对比:

功能

Nacos

Eureka

Consul

CoreDNS

Zookeeper

一致性协议

CP+AP

AP

CP

——

CP

健康检查

TCP/HTTP/MYSQL/Client Beat

Client Beat

TCP/HTTP/Grpc/Cmd

——

Keep Alive

负载均衡策略

权重/metadata/Selector

Ribbon

Fabio

RoundRobin

——

雪崩保护

自动注销实例

支持

支持

支持

不支持

支持

访问协议

HTTP/DNS

HTTP

HTTP/DNS

DNS

TCP

监听支持

支持

支持

支持

不支持

支持

多数据中心

支持

支持

支持

不支持

不支持

跨注册中心同步

支持

不支持

支持

不支持

不支持

SpringCloud集成

支持

支持

支持

不支持

支持

Dubbbo集成

支持

不支持

支持

不支持

支持

K8S集成

支持

不支持

支持

支持

不支持

现在的注册中心有很多Nacos、Eureka 主要是这两个;Consul 也就是 go 语言;还有 CoreDNS,有些问题可能在国内私体企业可能用不了,因为是上了美国名单的,但是可以私下使用;还有 Zookeeper。注意一点主要是 Nacos 支持的客户端都支持,而且是 K8S,包括 Dubbo 都支持。跨注册中心只有是 Nacos 和 Consl 支持,所以要仔细观看,Zookeeper 主要原因是因为它诞生的最少,主要是 Nacos 当时是服务于大数据体系,所以这里是有差异的。负载均衡是因为 Nacos 诞生的晚所以支持多一点。

Nacos 三种部署模式:

1. 单机模式–用于测试和单机试用。

2. 集群模式–用于生产环境,确保高可用。

3. 多集群模式–用于多数据中心场景。

Nacos 现在使用的是集群模式,其实 Eureka 也有集群模式,主要是考虑高并发的问题。

Nacos 全景大图:

image.png

后面会来到官网看文档做练习。包括 Nacos 的优势,也就是功能越强,监控配置一体,还有就是经过淘宝双十一的校验至于来源免费都是差不多的,只不过 Nacos 作为后起之秀整个的设计思维、功能都更强大,规度都可以支持,包括支持注册中心。

本节课就到这里,下节课讲解实战 Nacos,升级 Spring Cloud 的微服务。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
5天前
|
存储 缓存 负载均衡
Nacos注册中心
Nacos注册中心
18 1
Nacos注册中心
|
9天前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
16天前
|
消息中间件 自然语言处理 Java
知识科普:Spring Cloud Alibaba基本介绍
知识科普:Spring Cloud Alibaba基本介绍
49 2
|
23天前
|
人工智能 开发框架 Java
总计 30 万奖金,Spring AI Alibaba 应用框架挑战赛开赛
Spring AI Alibaba 应用框架挑战赛邀请广大开发者参与开源项目的共建,助力项目快速发展,掌握 AI 应用开发模式。大赛分为《支持 Spring AI Alibaba 应用可视化调试与追踪本地工具》和《基于 Flow 的 AI 编排机制设计与实现》两个赛道,总计 30 万奖金。
|
24天前
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
近期,阿里云重磅发布了首款面向 Java 开发者的开源 AI 应用开发框架:Spring AI Alibaba(项目 Github 仓库地址:alibaba/spring-ai-alibaba),Spring AI Alibaba 项目基于 Spring AI 构建,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。本文将详细介绍 Spring AI Alibaba 的核心特性,并通过「智能机票助手」的示例直观的展示 Spring AI Alibaba 开发 AI 应用的便利性。示例源
|
29天前
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
阿里云开源 Spring AI Alibaba,旨在帮助 Java 开发者快速构建 AI 应用,共同构建物理新世界。
|
5天前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
Nacos配置中心
22 1
Nacos配置中心
|
1天前
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。
|
4天前
|
网络安全 Nacos 开发者
Nacos作为流行的微服务注册与配置中心,“节点提示暂时不可用”是常见的问题之一
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,“节点提示暂时不可用”是常见的问题之一。本文将探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务的正常运行。通过检查服务实例状态、网络连接、Nacos配置、调整健康检查策略等步骤,可以有效解决这一问题。
14 4
|
4天前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,实际使用中常遇到“客户端不发送心跳检测”的问题。本文深入探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务正常运行。通过检查客户端配置、网络连接、日志、版本兼容性、心跳策略、注册状态、重启应用和环境变量等步骤,系统地排查和解决这一问题。
16 3
下一篇
无影云桌面