配置中心原理和选型

为什么需要配置中心?

  1. 缺乏整体管理,是配置管理变得低效
    • 处于运维管理的需求
  2. 很容易导致实例的配置出现不一致的地方
    • 生产环境多个集群直接修改配置,导致不一致
  3. 配置和代码在一起,配置修改需要重新发布,非常低效
    • 目的是修改配置,无需要重启和改代码

这些问题当单体服务,或者公司服务少了,不需要考虑,随着人员的增多,服务的增多,就需要统筹考虑了

配置中心需要具有哪些功能呢?

针对上一个问题,我们需要一个个解决

  1. 需要统一管理所有服务信息,可以搜索,修改、回滚、分环境
    • 是不是和 git 类似,和注册中心也类似,注册中心保存 ip 和 port,配置中心保存配置,不会过期
  2. 所有同一个服务的实例获取同一份配置,保持一致
    • 需要发布订阅 和通知机制
  3. 高效修改配置,支持不重启

如何实现配置中心?

  1. 选择合适的存储系统
    • 可用性非常高
    • 性能中等
    • 数据容量低
    • api 友好

在这里插入图片描述

mysql 和 redis 不太合适 ,运维比较复杂,etcd 和 zookeeper 也不太好,
是 cp 的,配置中心要求服务必须是高可用的,网络出现分区也要可以使用
eureka,就很好,100% 可以,虽然配置可能不一致,但是修改频率很低,最终是一致就可以

  1. 如何保持配置同步
    • 应用第一次启动,http 调用
    • 配置修改后,通过发布订阅或者定时轮询,对比修改

常用的配置中心有哪些?

  1. Spring Cloud Config
    Spring Cloud Config是官方提供的分布式系统的外部配置中心提供服务器和客户端支持。

  2. Apollo
    Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

  3. Nacos
    Nacos 阿里开源的框架,致力发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

怎么选择?

  1. pring Cloud Config可能在技术选型的时候没有那么高的吸引力,就拿Nacos来说 ,
    Nacos = Spring Cloud Eureka + Spring Cloud Config,可以与 Spring, Spring Boot, Spring Cloud 集成,并能代替 Spring Cloud Eureka, Spring Cloud Config。
  2. nacos配置文件支持比较多的格式,支持yaml、text、json、xml、html、Properties,apollo只支持xml、text、Properties的格式,没有兼容springboot中比较通用的yaml配置;
  3. pollo用户管理以及权限管理做的比较好和全面,适合做部门或者公司级的配置中心。nacos比较简洁明了(也可以说没有做权限这一块的开发),适合做小组内,或者小型java团体使用。
  4. apollo区分多环境是直接通过环境指定,可以直接对比和切换,而nacos是通过命名空间进行区分的。

整体上,Nacos部署简便,整合了注册中心和配置中心,方便管理和监控;可以直接容器化部署;读写的TPS比Apollo稍强一点;
Apollo拥有更完善的权限配置,并且支持灰度发布,对于一些正式的大型项目管理起来更加方便。

参考文档

  • https://developer.aliyun.com/article/942351

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/635722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】编译和链接深度剖析

文章目录 📝前言🌠 翻译环境和运行环境🌉翻译环境 🌠预处理(预编译)🌉编译 🌠词法分析🌠语法分析 🌉语义分析🌠汇编 🌉 链接&#x1f…

【教程】集群搭建准备工作全流程

基于VMware创建虚拟机进行集群搭建,适用于hadoop/GreenPlum等集群 之前已经创建了三台虚拟机hadoop102,hadoop103,hadoop104来搭建hadoop集群,因为目前学习到了greemplum,因此新建三台虚拟机hadoop105,had…

ubuntu下通过ssh在两台计算机之间拷贝文件

参考:Linux 远程连接之 SSH 新手指南 - 知乎 (zhihu.com) 1、查看是否安装ssh客户端 (ubuntu下一般默认都安装了) file /etc/ssh/ssh_config 有回复则表示安装了,否则会回复“No such file or directory” 2、查看是否安装ss…

[go] 迭代器模式

迭代器模式 提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露其内部的表示。 模型说明 Iterator: 接口声明了遍历集合所需的操作: 获取下一个元素、 获取当前位置和重新开始迭代等。 IterableCollection: 接口声明一个或多个方法来获取与集合…

springboot110作业管理系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的作业管理系统 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资…

html css js 开发一个猜数字游戏

以下是一个使用HTML、CSS和JS开发的简单猜数字游戏的示例&#xff1a; HTML代码&#xff1a; <!DOCTYPE html> <html> <head><title>猜数字游戏</title><link rel"stylesheet" type"text/css" href"style.css&quo…

java基本语法(内涵与C++的不同)

java语法 在介绍java中&#xff0c;我会去书写一些java语言与C的不同点。 目录 java语法 变量、运算符、输入与输出 内置数据类型 常量 运算符 两种输入输出 输入 方法一 方法二 输出 方法一 方法二 判断语句 if-else语句 switch语句 逻辑表达式和条件运算符 循环语句 …

vue.js安装

1:下载 Node.js 官网&#xff1a;https://nodejs.org/en/download 2:安装 node -v npm -v 3:配置 npm config set prefix "F:\node\node_global" npm config set cache "F:\node\node_cache" 按 win 键并输入“编辑系统环境变量”调出系统属性界面&a…

AWTK 开源串口屏开发(7) - 屏幕保护

现代屏幕其实并不需要屏幕保护&#xff0c;不过屏幕保护程序会衍生一些其它用途。比如&#xff1a; 保护隐私。长时间不操作&#xff0c;通过动画或者其它方式隐藏屏幕内容。数据安全。长时间不操作&#xff0c;需要输入密码才能恢复。美观/广告。长时间不操作&#xff0c;显示…

C++中的static(静态)

2014年1月19日 内容整理自The Cherno:C系列 2014年1月20日 内容整理自《程序设计教程&#xff1a;用C语言编程 第三版》 陈家骏 郑滔 -----------------------------------------------------------------------------------------------------------------------------…

JS执行顺序

众所周知&#xff0c;JavaScript 是单线程语言,只能同时执行做一件事(js只有一个线程&#xff0c;称之为main thread-主线程) 1.Javascript 运行机制 main thread 主线程和 call-stack 调用栈(执行栈)&#xff0c;所有的任务都会被放到调用栈等待主线程执行。 2.Javascript 任…

SpringBoot+beetl idea热更新解决方案

SpringBootbeetl idea热更新解决方案 第一在application中开启&#xff1a; beetl:resource-auto-check: true #热加载beetl模板&#xff0c;开发时候用第二在application中开启&#xff1a; devtools: 这个部分专门用于配置Spring Boot DevTools的相关参数。DevTools…

Centos8中yum安装docker问题

问题&#xff1a;执行yum update 报错 problem with installed package containers-common-2:1-2.module_el8.5.08906b136101.noarch 执行下面的containerd.io版本安装即可 yum install https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.…

Java SE入门及基础(23)

目录 方法带参 1. 构造方法带参 案例场景 思考&#xff1a;以上代码存在什么问题&#xff1f; 2. 方法带参 方法带参语法 案例场景 思考&#xff1a;以上代码存在什么问题&#xff1f; Java SE文章参考:Java SE入门及基础知识合集-CSDN博客 方法带参 1. 构造方法带参 …

十八周周报

文章目录 摘要文献阅读3D reconstruction of human bodies from single-view and multi-view images: A systematic review简介研究方法搜索策略选择标准搜索结果 三维重建方法单个视图中使用的技术基于参数化人体模型的回归基于非参数人体模型的回归 多个视图中使用的技术基于…

base64图片是什么?原理是什么?优缺点是什么?

Base64图片是一种将图像数据编码为文本字符串的方法&#xff0c;通常用于将图像嵌入到网页或其他文档中&#xff0c;以减少HTTP请求或实现某些特定的需求。Base64编码的原理是将3个8位的字节转化为4个6位的字节&#xff0c;然后在6位的前面补两个0&#xff0c;形成8位一个字节的…

PaddleNLP评论观点抽取和属性级情感分析

项目地址&#xff1a;PaddleNLP评论观点抽取和属性级情感分析 - 飞桨AI Studio星河社区 (baidu.com) 情感分析旨在对带有情感色彩的主观性文本进行分析、处理、归纳和推理&#xff0c;其广泛应用于消费决策、舆情分析、个性化推荐等领域&#xff0c;具有很高的商业价值。 依托…

C#,因数分解(质因子分解)Pollard‘s Rho算法的源代码

因数分解&#xff08;也称为质因子分解&#xff09;&#xff1a;将一个大整数分解它的质因子之乘积的算法。 Pollard Rho算法的基本思路&#xff1a;先判断当前数是否是素数&#xff08;质数&#xff09;&#xff0c;如果是&#xff0c;则直接返回。如果不是&#xff0c;继续找…

11、Kafka ------ Kafka 核心API 及 生产者API 讲解

目录 Kafka核心API 及 生产者API讲解★ Kafka的核心APIKafka包含如下5类核心API&#xff1a; ★ 生产者APIKafka 的API 文档 ★ 使用生产者API发送消息 Kafka核心API 及 生产者API讲解 官方文档 ★ Kafka的核心API Kafka包含如下5类核心API&#xff1a; Producer API&#x…

spring data mongo 在事务中,无法自动创建collection

spring data mongo 在事务中,无法自动创建collection org.springframework.dao.DataIntegrityViolationException: Write operation error on server xxx:30001. Write error: WriteError{code=263, message=Cannot create namespace xxx.xxxin multi-document transaction.…