您当前的位置:首页 > 电脑百科 > 程序开发 > 架构

分布式配置中心Nacos和Apollo如何选择?

时间:2023-09-11 12:16:53  来源:  作者:从程序员到架构师

为什么需要配置中心?

随着分布式业务的发展,分布式节点会越来越多,就会出现各种各样的问题。

  • 业务功能随着需求逐渐变复杂了,就导致应用程序所需要的配置内容越来越多,例如业务开发、服务器配置等等信息都需要进行灵活动态的配置。
  • 由于在分布式系统中各个业务节点都需要使用自己的配置,如果没有统一的管理,就会出现各个节点配置不统一的情况。
  • 随着业务环境的增加,出现了生产环境、灰度环境、测试环境等等,并且在每个环境中都会有不同的配置,不同的版本管理,以及不同的权限机制等,这种

什么是配置中心?

在应用启动的时候,往往需要从配置文件中读取一些应用启动的初始化配置参数,而这些配置一旦创建就会伴随着应用程序整个的生命周期。例如数据库的链接配置、redis的链接配置等等。这些配置一旦被创建使用在整个的应用程序的生命周期中都是有效的。

但是在分布式系统中,同一份的应用可能会在不同的环境中运行、例如生成环境的应用、测试环境的应用、开发环境的应用。并且有可能会出现不同集群之间的配置文件也是不一样的情况。那么这个时候我们就需要一个统一的配置中心来去管理这些配置。

配置中心就是将所有应用的配置文件从应用本身中剥离出来,对配置进行统一的管理,应用本身则不需要再去关心配置。

分布式配置中心Nacos和Apollo如何选择?

 

配置中心完成的功能如下

  • 用户可以在配置中心发布、更新配置信息
  • 各个微服务可以及时的从配置中心获取到最新的配置信息

总体来讲,配置中心所完成的工作就是对系统中各个服务的配置文件进行管理。

开源配置中心介绍?

目前市面上开源的配置中有如下几种

  • Disconf
  • Spring Cloud Config
  • Apollo
  • Nacos

其中Disconf已经不再维护了,而Spring Cloud Config 则是比较依赖于Git或者是SVN进行管理的,所以这里我们介绍的就只有Apollo和Nacos了。

分布式配置中心Nacos和Apollo如何选择?

 

Nacos配置中心

其实Nacos不但包括配置中心,它还包括了注册中心的功能,只不过这里我们重点介绍一下其配置中心的功能。

Nacos设计之初其实是为了实现服务的注册发现,也就是倾向于一个注册中心的个哦能。提供了一些动态发现功能、服务配置功能、元数据管理功能以及流量管理等功能。

其配置中心主要包括两部分内容,Server端和Client端,都是由JAVA语言开发,由Client端来完成对于服务的配置管理。所以Client支持多语言开发,并且与具体的应用模块嵌套到一起来完成服务的配置管理。并且Nacos也提供了相应的SDK和OpenAPI来完成服务的配置发现逻辑。

分布式配置中心Nacos和Apollo如何选择?

 

Apollo配置中心

分布式配置中心Nacos和Apollo如何选择?

 

Apollo配置中心是携程基础架构部门研发的分布式配置中心项目,能够以集中式的管理方式来管理不同环境、不同集群的配置,并且配置修改完成之后可以实时的推送到应用端,并且能够实现权限管理,流程管理等等功能。

Apollo也分为Server端和Client端,它的Server端是基于Spring Boot和Spring Cloud开发,打包之后可以直接发布使用。客户端也是基于Java语言开发,几乎可以运行于所有的Java环境中,同时对于Spring Boot也有很好的支持。

Apollo是一个带有治理能力的分布式配置发布平台,它提供了基于不同版本、不同环境、不同集群的配置管理,并且支持配置热发布。通过版本管理来实现不同场景,不同环境的发布,基于权限管理提供了代码的审计检查、发布检查等功能。并且提供了OpenAPI支持二次开发。最主要的是Apollo与Spring Boot是天然结合,不需要再去多做任何处理。

如下图所示是Apollo的经典运行流程。

分布式配置中心Nacos和Apollo如何选择?

 

总结

从配置中心本身的角度上来讲,Nacos的读写性能要略高于Apollo,其次通过上面的分析,我们可以看出二者基本上是功能相差不大,并且Nacos还提供了注册中心服务,所以整体优势方面也是略强于Nacos的,并且Nacos背靠阿里,也是有很大的应用发展空间。所以个人觉得如果配置性要求不是太强的场景完全可以使用Apollo因为其简单,如果配置性要求强的话,建议使用Nacos。



Tags:分布式   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
在Redis中如何实现分布式锁的防死锁机制?
在Redis中实现分布式锁是一个常见的需求,可以通过使用Redlock算法来防止死锁。Redlock算法是一种基于多个独立Redis实例的分布式锁实现方案,它通过协调多个Redis实例之间的锁...【详细内容】
2024-02-20  Search: 分布式  点击:(47)  评论:(0)  加入收藏
手动撸一个 Redis 分布式锁
大家好呀,我是楼仔。今天第一天开工,收拾心情,又要开始好好学习,好好工作了。对于使用 Java 的小伙伴,其实我们完全不用手动撸一个分布式锁,直接使用 Redisson 就行。但是因为这些...【详细内容】
2024-02-19  Search: 分布式  点击:(39)  评论:(0)  加入收藏
雪花算法详解与Java实现:分布式唯一ID生成原理
SnowFlake 算法,是 Twitter 开源的分布式 ID 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 ID。在分布式系统中的应用十分广泛,且 ID 引入了时间戳...【详细内容】
2024-02-03  Search: 分布式  点击:(50)  评论:(0)  加入收藏
Python分布式爬虫打造搜索引擎
简单分布式爬虫结构主从模式是指由一台主机作为控制节点负责所有运行网络爬虫的主机进行管理,爬虫只需要从控制节点那里接收任务,并把新生成任务提交给控制节点就可以了,在这个...【详细内容】
2024-01-25  Search: 分布式  点击:(58)  评论:(0)  加入收藏
分布式事务框架选择与实践
分布式事务是处理跨多个服务的原子操作的关键概念,而选择适合应用场景的框架对于确保事务一致性至关重要。以下是几个常见的分布式事务框架,并讨论它们的使用和实践。1. XA协...【详细内容】
2024-01-05  Search: 分布式  点击:(96)  评论:(0)  加入收藏
分布式场景下的事务机制
事务消息是RocketMQ的一个非常特色的高级特性,它的基础诉求是通过RocketMQ的事务机制,来保证上下游的数据⼀致性。我们在单机版本下面只需要在业务方法上加上对应的事务就可以...【详细内容】
2023-12-26  Search: 分布式  点击:(120)  评论:(0)  加入收藏
分布式存储系统在大数据处理中扮演着怎样的角色?
如果存储节点本身可以定制,则通常会让其支持部分计算能力,以利用数据的亲和性,将部分计算下推到相关的存储节点上。如果存储是云上的 S3 等对象存储,无法定制,则通常会将数据在计...【详细内容】
2023-12-19  Search: 分布式  点击:(48)  评论:(0)  加入收藏
MongoDB与大数据处理:构建高性能分布式数据库
MongoDB是一种非关系型数据库,具有高度灵活性和可扩展性。在处理大量数据时,索引的优化是提升查询性能的关键。下面将介绍一些MongoDB索引优化的指南,帮助用户更好地利用索引来...【详细内容】
2023-12-18  Search: 分布式  点击:(71)  评论:(0)  加入收藏
聊一聊雪花算法与分布式ID生成
生成全局唯一ID的雪花算法原理雪花算法是一种用于生成全局唯一ID的算法,最初由Twitter开发,用于解决分布式系统中生成ID的问题。其核心思想是将一个64位的长整型ID划分成多个...【详细内容】
2023-12-12  Search: 分布式  点击:(132)  评论:(0)  加入收藏
Redis分布式锁常见坑点分析
日常开发中,基于 Redis 天然支持分布式锁,大家在线上分布式项目中都使用过 Redis 锁。本文主要针对日常开发中加锁过程中某些异常场景进行讲解与分析。本文讲解示例代码都在 h...【详细内容】
2023-12-11  Search: 分布式  点击:(111)  评论:(0)  加入收藏
▌简易百科推荐
对于微服务架构监控应该遵守的原则
随着软件交付方式的变革,微服务架构的兴起使得软件开发变得更加快速和灵活。在这种情况下,监控系统成为了微服务控制系统的核心组成部分。随着软件的复杂性不断增加,了解系统的...【详细内容】
2024-04-03  步步运维步步坑    Tags:架构   点击:(5)  评论:(0)  加入收藏
大模型应用的 10 种架构模式
作者 | 曹洪伟在塑造新领域的过程中,我们往往依赖于一些经过实践验证的策略、方法和模式。这种观念对于软件工程领域的专业人士来说,已经司空见惯,设计模式已成为程序员们的重...【详细内容】
2024-03-27    InfoQ  Tags:架构模式   点击:(13)  评论:(0)  加入收藏
哈啰云原生架构落地实践
一、弹性伸缩技术实践1.全网容器化后一线研发的使用问题全网容器化后一线研发会面临一系列使用问题,包括时机、容量、效率和成本问题,弹性伸缩是云原生容器化后的必然技术选择...【详细内容】
2024-03-27  哈啰技术  微信公众号  Tags:架构   点击:(10)  评论:(0)  加入收藏
DDD 与 CQRS 才是黄金组合
在日常工作中,你是否也遇到过下面几种情况: 使用一个已有接口进行业务开发,上线后出现严重的性能问题,被老板当众质疑:“你为什么不使用缓存接口,这个接口全部走数据库,这怎么能扛...【详细内容】
2024-03-27  dbaplus社群    Tags:DDD   点击:(11)  评论:(0)  加入收藏
高并发架构设计(三大利器:缓存、限流和降级)
软件系统有三个追求:高性能、高并发、高可用,俗称三高。本篇讨论高并发,从高并发是什么到高并发应对的策略、缓存、限流、降级等。引言1.高并发背景互联网行业迅速发展,用户量剧...【详细内容】
2024-03-13    阿里云开发者  Tags:高并发   点击:(6)  评论:(0)  加入收藏
如何判断架构设计的优劣?
架构设计的基本准则是非常重要的,它们指导着我们如何构建可靠、可维护、可测试的系统。下面是这些准则的转换表达方式:简单即美(KISS):KISS原则的核心思想是保持简单。在设计系统...【详细内容】
2024-02-20  二进制跳动  微信公众号  Tags:架构设计   点击:(36)  评论:(0)  加入收藏
详解基于SpringBoot的WebSocket应用开发
在现代Web应用中,实时交互和数据推送的需求日益增长。WebSocket协议作为一种全双工通信协议,允许服务端与客户端之间建立持久性的连接,实现实时、双向的数据传输,极大地提升了用...【详细内容】
2024-01-30  ijunfu  今日头条  Tags:SpringBoot   点击:(9)  评论:(0)  加入收藏
PHP+Go 开发仿简书,实战高并发高可用微服务架构
来百度APP畅享高清图片//下栽のke:chaoxingit.com/2105/PHP和Go语言结合,可以开发出高效且稳定的仿简书应用。在实现高并发和高可用微服务架构时,我们可以采用一些关键技术。首...【详细内容】
2024-01-14  547蓝色星球    Tags:架构   点击:(115)  评论:(0)  加入收藏
GraalVM与Spring Boot 3.0:加速应用性能的完美融合
在2023年,SpringBoot3.0的发布标志着Spring框架对GraalVM的全面支持,这一支持是对Spring技术栈的重要补充。GraalVM是一个高性能的多语言虚拟机,它提供了Ahead-of-Time(AOT)编...【详细内容】
2024-01-11    王建立  Tags:Spring Boot   点击:(124)  评论:(0)  加入收藏
Spring Boot虚拟线程的性能还不如Webflux?
早上看到一篇关于Spring Boot虚拟线程和Webflux性能对比的文章,觉得还不错。内容较长,抓重点给大家介绍一下这篇文章的核心内容,方便大家快速阅读。测试场景作者采用了一个尽可...【详细内容】
2024-01-10  互联网架构小马哥    Tags:Spring Boot   点击:(115)  评论:(0)  加入收藏
站内最新
站内热门
站内头条