我的架构之路 — 配置中心(一)—简单实用的配置中心

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 离开淘宝,我没有去处于风口的摩拜,而是加入了铁甲网,可能也是一种中庸之道吧。不过铁甲竟然也搬家到了亮马桥河畔,不远处就是摩拜。到铁甲第一个项目就是搭建一个配置中心,实现配置的统一管理,实现配置的动态更新,初步要求就是尽快出来,简单、稳定。

离开淘宝,我没有去处于风口的摩拜,而是加入了铁甲网,可能也是一种中庸之道吧。不过铁甲竟然也搬家到了亮马桥河畔,不远处就是摩拜。
到铁甲第一个项目就是搭建一个配置中心,实现配置的统一管理,实现配置的动态更新,初步要求就是尽快出来,简单、稳定。

淘宝有diamond,但没有开源(内部绑定太多,很早之前有个开源版本),否决了;百度有disconf,但需要mysql、redis、zookeper、nginx 一堆东西,好吧,经过讨论,咱是要一个简单好用的配置管理,那就pass掉吧。

于是又到GitHub找了个开源项目superdiamond,搭建了一个初步的配置中心demo。实现原理是客户端通过netty连接到配置中心实时获得配置信息。参考界面如下:

image

image

但接着发现有些问题要考虑:
1、如果配置中心当掉,会导致客户端取不到配置;
2、如果网络断掉,最新配置无法同步到客户端,服务器端还需要记住这些数据,并进行重新发送尝试。维护各个端的状态信息感觉比较麻烦。
3、配置中心多台机器如何互相同步

所以,最终的想法是,自己重头开发一个简单稳定的配置中心。

主要的改造是:客户端不从配置中心读取配置,而是定时连接mysql读取数据。这就有个前提,mysql是稳定的,当然,mysql如果不稳定,那业务系统也就无法用了,谈配置中心也没意义了。

image

1)开发者还是通过配置中心界面来修改配置信息,配置修改后修改时间字段也会更新。但配置的下发不再是实时推送到客户端的方式,而是由客户端去mysql拉取。

2)客户端应用启动的时候,第一次会从mysql拉取本应用全部的配置,如果成功,同时本地保存一份配置;如果尝试3次都失败,则从本地备份目录读取配置。

3)mysql后面则每隔20秒去拉取最新的配置(客户端每次拉取后需要记录最大的时间,下次以此时间为起点去拉取变化的配置)

总体上,这种设计方案比较简单实用,只对mysql有强依赖,对配置中心本身没有强依赖,即配置中心当掉后取配置还照样转。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
1
13
分享
相关文章
|
11月前
|
Linux DNS服务详解——DNS主从架构配置
Linux DNS服务详解——DNS主从架构配置
671 4
Nacos:现代化微服务架构的注册与配置中心
在当今快节奏的软件开发世界中,微服务架构已经成为了构建可伸缩、高可用性应用程序的首选方式之一。然而,随着微服务数量的增加,有效地管理服务注册和配置变得愈发复杂。这时,Nacos(发音为“nac-os”)作为一个开源的服务注册和配置中心解决方案应运而生。
框架源码私享笔记(01)Tomcat核心架构功能 | 配置详解
本文首先分享了《活出意义来》一书序言中的感悟,强调成功如同幸福,不是刻意追求就能得到,而是全心投入时的副产品。接着探讨了Tomcat的核心功能与架构解析,包括网络连接器(Connector)和Servlet容器(Container),并介绍了其处理HTTP请求的工作流程。文章还详细解释了Tomcat的server.xml配置文件,涵盖了从顶级容器Server到子组件Connector、Engine、Host、Context等的配置参数及作用,帮助读者理解Tomcat的内部机制和配置方法。
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
87 0
|
9月前
|
Redis 主从复制架构配置及原理
Redis 主从复制架构配置及原理
99 5
Android项目架构设计问题之保证线上用户不会进入到本地配置页面如何解决
Android项目架构设计问题之保证线上用户不会进入到本地配置页面如何解决
49 0
Android项目架构设计问题之在远端动态配置中添加相应配置如何解决
Android项目架构设计问题之在远端动态配置中添加相应配置如何解决
52 0
高并发架构设计三大利器:缓存、限流和降级问题之配置Sentinel的流量控制规则问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之配置Sentinel的流量控制规则问题如何解决
132 0
业务系统架构实践问题之在设计领域时配置与单据之间的关系如何解决
业务系统架构实践问题之在设计领域时配置与单据之间的关系如何解决

热门文章

最新文章