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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 快速学习 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搭建和管理企业级网站应用
相关文章
|
2月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
|
2月前
|
Cloud Native Java Nacos
微服务时代的新宠儿!Spring Cloud Nacos实战指南,带你玩转服务发现与配置管理,拥抱云原生潮流!
【8月更文挑战第29天】Spring Cloud Nacos作为微服务架构中的新兴之星,凭借其轻量、高效的特点,迅速成为服务发现、配置管理和治理的首选方案。Nacos(命名和配置服务)由阿里巴巴开源,为云原生应用提供了动态服务发现及配置管理等功能,简化了服务间的调用与依赖管理。本文将指导你通过五个步骤在Spring Boot项目中集成Nacos,实现服务注册、发现及配置动态管理,从而轻松搭建出高效的微服务环境。
134 0
|
10天前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
535 5
|
2月前
|
人工智能 前端开发 Java
【实操】Spring Cloud Alibaba AI,阿里AI这不得玩一下(含前后端源码)
本文介绍了如何使用 **Spring Cloud Alibaba AI** 构建基于 Spring Boot 和 uni-app 的聊天机器人应用。主要内容包括:Spring Cloud Alibaba AI 的概念与功能,使用前的准备工作(如 JDK 17+、Spring Boot 3.0+ 及通义 API-KEY),详细实操步骤(涵盖前后端开发工具、组件选择、功能分析及关键代码示例)。最终展示了如何成功实现具备基本聊天功能的 AI 应用,帮助读者快速搭建智能聊天系统并探索更多高级功能。
585 2
【实操】Spring Cloud Alibaba AI,阿里AI这不得玩一下(含前后端源码)
|
2月前
|
Cloud Native Java Nacos
Spring Cloud Config、Apollo、Nacos和Archaius对比
这篇文章对比了Spring Cloud Config、Apollo、Nacos和Archaius这四种配置中心的适应场景、优缺点。文中讨论了它们的功能特点,例如Spring Cloud Config的集中化配置管理和动态刷新能力,Apollo的实时配置推送和权限治理,Nacos的服务发现和管理功能,以及Archaius的动态配置更新能力。文章指出选择配置中心应根据项目需求和架构来决定,并提供了一个对比图来帮助读者更直观地理解这些工具的差异。
37 1
Spring Cloud Config、Apollo、Nacos和Archaius对比
|
21天前
|
负载均衡 Java Nacos
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
微服务介绍、SpringCloud、服务拆分和远程调用、Eureka注册中心、Ribbon负载均衡、Nacos注册中心
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
|
7天前
|
人工智能 前端开发 Java
Spring Cloud Alibaba AI,阿里AI这不得玩一下
🏀闪亮主角: 大家好,我是JavaDog程序狗。今天分享Spring Cloud Alibaba AI,基于Spring AI并提供阿里云通义大模型的Java AI应用。本狗用SpringBoot+uniapp+uview2对接Spring Cloud Alibaba AI,带你打造聊天小AI。 📘故事背景: 🎁获取源码: 关注公众号“JavaDog程序狗”,发送“alibaba-ai”即可获取源码。 🎯主要目标:
17 0
|
2月前
|
Dubbo Java 调度
揭秘!Spring Cloud Alibaba的超级力量——如何轻松驾驭分布式定时任务调度?
【8月更文挑战第20天】在现代微服务架构中,Spring Cloud Alibaba通过集成分布式定时任务调度功能解决了一致性和可靠性挑战。它利用TimerX实现任务的分布式编排与调度,并通过`@SchedulerLock`确保任务不被重复执行。示例代码展示了如何配置定时任务及其分布式锁,以实现每5秒仅由一个节点执行任务,适合构建高可用的微服务系统。
53 0
|
SpringCloudAlibaba 网络协议 Cloud Native
Spring Cloud Alibaba-全面详解(学习总结---从入门到深化)
Spring Cloud Alibaba致力于提供微服务开发的一站式解决方案。
6314 1
Spring Cloud Alibaba-全面详解(学习总结---从入门到深化)
|
Java Nacos Sentinel
Spring Cloud Alibaba学习指南
由于在2018年Netflix公司宣布对其核心组件Hystrix、Ribbon、zuul、Eureka等进入维护状态,也就是Spring Cloud Netflix系列。由此Spring Cloud Alibaba就诞生了,值得注意的是Spring Cloud Alibaba完全兼容了Spring Cloud Netflix中的Ribbon、Feign、Eureka等组件,所以基于Spring Cloud Netflix的项目可以无缝迁移到Spring Cloud Alibaba。
538 0
下一篇
无影云桌面