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

本文涉及的产品
云数据库 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有强依赖,对配置中心本身没有强依赖,即配置中心当掉后取配置还照样转。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
网络协议 Linux
Linux DNS服务详解——DNS主从架构配置
Linux DNS服务详解——DNS主从架构配置
422 4
|
8月前
|
开发框架 负载均衡 数据管理
Nacos:现代化微服务架构的注册与配置中心
在当今快节奏的软件开发世界中,微服务架构已经成为了构建可伸缩、高可用性应用程序的首选方式之一。然而,随着微服务数量的增加,有效地管理服务注册和配置变得愈发复杂。这时,Nacos(发音为“nac-os”)作为一个开源的服务注册和配置中心解决方案应运而生。
|
7天前
|
关系型数据库 MySQL 数据库
MySQL集群 双主架构(配置命令)
MySQL集群 双主架构(配置命令)
|
2月前
|
Dubbo Cloud Native 应用服务中间件
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
28 1
|
2月前
|
消息中间件 SpringCloudAlibaba Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
790 0
|
2月前
|
消息中间件 存储 SQL
Flume【基础知识 01】简介 + 基本架构及核心概念 + 架构模式 + Agent内部原理 + 配置格式(一篇即可入门Flume)
【2月更文挑战第18天】Flume【基础知识 01】简介 + 基本架构及核心概念 + 架构模式 + Agent内部原理 + 配置格式(一篇即可入门Flume)
503 0
|
3月前
|
SQL 缓存 关系型数据库
MySQL(终结篇一)- 性能优化(配置及架构)
MySQL(终结篇一)- 性能优化(配置及架构)
609 0
|
7月前
|
存储 Java 测试技术
Nacos架构与原理 - 配置模型
Nacos架构与原理 - 配置模型
432 0
|
7月前
|
运维 Java Nacos
从架构开始,Get注册配置中心Nacos
对我们这样的中小企业来说,性能和稳定性需求需要平衡成本。以往我们对新技术胆战心惊是因为通常不具备大规模IT基础设施和人力资源来处理故障危机,因此阿里云注册配置中心 MSE-Nacos就是一个既能够满足需求又不会造成巨大负担的解决方案
487 1
|
7月前
|
NoSQL Cloud Native 关系型数据库
一张图读懂阿里云数据库架构和配置选择
一张图读懂阿里云数据库架构和配置选择,阿里云数据库大全
641 1