首页 > 其他分享 >配置中心Spring cloud config、Apollo、Nacos对比

配置中心Spring cloud config、Apollo、Nacos对比

时间:2024-04-12 17:37:01浏览次数:27  
标签:Spring 配置 Nacos 支持 Apollo Config

配置中心

spring cloud config

Apollo

Nacos(重点)

动态配置管理

Spring Cloud Bus自动刷新

支持

支持

服务发现与服务健康检查

Eureka或Consul实现

不支持

支持

配置格式

Properties、yaml

只支持xml、text、Properties

支持yaml、text、json、xml、html、Properties

配置格式校验

不支持

支持

支持

监听查询

支持

支持

支持

配置实时推送

弱支持(Spring Cloud Bus)

支持(HTTP长轮询1s内)

支持(HTTP长轮询1s内)

配置的灰度发布

理念上支持,可操作性不强

支持

1.1.0开始支持

权限管理

不支持(没有区分用户、角色、权限的概念)

支持

1.2.0开始支持

单机部署

Config+server+Git+Spring Cloud Bus

Config+Admin+Portal+Mysql*2

Nacos+MySql

分布式高可用最小集群数量

Config-Server2+Git+MQ

Config*2+Admin*3+Portal*2+Mysql*2=9

Nacos*3+MySql=4

单机读(tps)

7

9000

15000

单机写(tps)

5

1100

1800

3节点读(tps)

21

27000

45000

3节点(tps)

5

3300

5600

 

NacosApollo对比结论:

 

1、部署方面:

Nacos部署简化,Nacos整合了注册中心、配置中心功能,且部署相比Apollo简单,方便管理和监控;

Apollo需要部署3个服务(adminservice、configservice、portal),分别使用807080808090端口,Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,配置文件多,数据库表多;

Apollo容器化较困难,Nacos有官网的镜像可以直接部署,总体来说,Nacos比Apollo更符合KISS原则;

整体上:Nacos的部署结构比较简单,运维成本较低。Apollo部署组件较多,运维成本比Nacos高。Spring Cloud Config生产高可用的成本最高。

 

2、配置中心:

Nacos和Apollo均支持动态发布配置,配置中心监听器,配置中心发生配置变化,监听器会通知服务做出配置更新通知;

Nacos配置文件支持比较多的格式,支持yaml、text、json、xml、html、Properties;

Apollo只支持xml、text、Properties的格式,没有兼容springboot中比较通用的yaml配置。

配置对比:Nacos和Apollo都有对比功能,不过Nacos比较粗糙一些,只能再发布的时候与上一个版本进行对比,Apollo支持不同环境 不同版本上的杜比。

 

注册发现与健康检查:

Nacos内置监听心跳检测机制,每5秒、15秒、30秒对服务进行心跳探测,标注为健康、不健康、剔除;

 

3、性能方面:

Nacos读写tps比Apollo稍强一些,Nacos : 性能最好(默认使用hibernate连接池,可以自定);

 

4、界面方面

Apollo也许经过的迭代更久,功能上比Nacos更加完善,权限管理做的全面,配置上可能会做的更细节一些,不过操作比较繁琐,比较适合多业务 多团队的业务场景。

Nacos做的比较简洁直观,一目了然,操作简单些。

 

5、生态方面:

Nacos当前作为阿里巴巴主开源的项目,社区活跃,生态链完整,版本更新迭代中;
Apollo目前在国内开发者社区比较热,在Github上有超过5k颗星,在国内众多互联网公司有落地案例,可以说Apollo是目前配置中心产品领域Number1的产品,其成熟度和企业级特性要远远强于Spring Cloud体系中的Spring Cloud Config产品。
eureka上手简单,社区完善,但已于2018年七月停止开源计划。

 

标签:Spring,配置,Nacos,支持,Apollo,Config
From: https://www.cnblogs.com/yang5726685/p/18131746

相关文章

  • Springboot2+vue2整合项目
    前端https://blog.csdn.net/m0_37613503/article/details/128961447数据库1.用户表CREATETABLE`x_user`(`id`int(11)NOTNULLAUTO_INCREMENT,`username`varchar(50)NOTNULL,`password`varchar(100)DEFAULTNULL,`email`varchar(50)DEFAULTNULL,`......
  • nacos启用鉴权后curl调用接口
    1.通过用户名密码获取token密码尽量不要带特殊字符,否则可能识别错误/#curl-XPOST'http://192.168.60.181:8848/nacos/v1/auth/login'-d'username=nacos&password=nacos'{"accessToken":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcxMjkyNDc......
  • 28.shiro的总结(同springsecurity对比)
    来看具体例子中shiro的应用:首先三个核心组件Subject当前和软件交互的任何事件SecurityManager管理所有Subject,SecurityManager是Shiro架构的核心,配合内部安全组件共同组成安全伞Realms:用于进行权限信息的验证,我们自己实现。Realm本质上是一个特定的安全DAO:它封......
  • 【Camunda】SpringBoot优雅集成Camunda 7工作流引擎,保姆级教程!
    From: https://mp.weixin.qq.com/s/lZmIucZYzqqwjBCtDAL9WA前言项目中需要用到工作流引擎来设计部分业务流程,框架选型最终选择了Camunda7,关于Camunda以及Activity等其他工作流引擎的介绍及对比不再介绍,这里只介绍与现有Springboot项目的集成以及具体使用及配置概念流程......
  • Linux安装Apollo配置中心
    apollo官网链接:https://www.apolloconfig.com/#/zh/READMEApollo组件简介ApolloConfigService是一个分布式的配置中心,主要负责应用的配置信息存储、推送和管理。ConfigService支持多种存储方式,例如本地文件系统、Git存储和数据库存储等,同时也提供基于轮询和通知两种方......
  • SpringBoot starter 原理及如何自定义 starter
     前言项目的开发要求是不断进化的,而随着时间以及技术的推移,在项目中除了基本的编程语言外,还需要进行大量的应用服务整合。例如,在项目中使用MySQL数据库进行持久化存储,同时会利用Redis作为缓存存储,以及使用RocketMQ实现异构系统整合服务等。但在早先使用Spring开发的......
  • Linux安装Nacos
    1,先安装jdk,nacos需要依赖于jdk2,官网前往GitHub下载安装包官网:https://nacos.io/zh-cn/官方文档:https://nacos.io/docs/v2/what-is-nacos/GitHub:https://github.com/alibaba/nacoscd/usr/localwgethttps://github.com/alibaba/nacos/releases/download/2.2.3/nacos-serve......
  • Docker创建运行Nacos容器
     1简单创建nacos,进入容器配置数据库#查看镜像dockersearchnacos#拉取镜像dockerpullnacos/nacos-server:v2.2.3#创建容器dockerrun-d--namenacos-p9007:8848-ePREFER_HOST_MODE=hostname-eMODE=standalonenacos/nacos-server:v2.2.3#进入容器dockerexec-it......
  • 【Springboot】排除多余依赖与Bean实例
    一、背景:引入公共包之后,需要排除部分不需要的包和bean,给当前服务最大程度减重二、实现:1.在pom.xml排除依赖 2.在启动类上添加扫描排除项@ComponentScan(basePackages={"com.xxx"},excludeFilters={@ComponentScan.Filter(type......
  • Spring Boot对Security的支持
    SpringBoot支持SpringSecurity,以搭建Eureka服务器为例演示添加Security之后的效果,以及探究在Security的配置是否与上述描述相符:1、导入Security坐标支持 2、访问http://localhost:8260/,如下: ......