热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

全服不停机数据库水平扩容方案

本次目标:全服不停机情况下在线扩容数据分库不停机变更为方案已有的基础:具有分库信息登记表

本次目标:

全服不停机情况下在线扩容数据分库

不停机变更为

方案已有的基础:

具有分库信息登记表,应用启动过程已具备动态读取分库信息并建立动态数据源的能力,已实现分库

方案1:

1、运维人员准备数据库实例,克隆数据库模板,建立好分库

2、分库连接信息 配置到 数据库信息登记表中,状态为 未就绪(这就避免了此库被分配出去)

3、滚动重启全部应用容器(应用集群保证了客户端无感知),重启完毕后修改数据库列表为就绪状态,可以接收新数据

4、本方案关键在于 “滚动”两个字

方案2:

数据源列表里设计一个是否就绪的开关列,定时任务动态建立完毕连接池后,更改开关状态为就绪,开始接收新数据。

步骤:

1、zk上建立一个目录,应用启动后注册自己的ip信息和数据分库就绪【重启的都是就绪】的信息到目录下,为临时节点

2、运维人员准备数据库实例,克隆数据库模板,建立好分库

3、分库连接信息 配置到 数据分库信息注册表中,状态为 未就绪(这就避免了此库被分配出去),同时更新zk中所有应用节点为DB未就绪状态

4、应用层面的定时检测任务,发现列表中有待初始化的新数据库

5、定时任务初始化新数据源,添加到Spring动态数据源中

6、定时任务更新zk中自己所在应用的状态为DB连接池已就绪

7、BOSS系统定时任务检查ZK中所有应用的状态是否已完成变更,如果所有已就绪,则更新数据库列表新数据源为 已就绪 状态,开始接受新数据。

难点:

1、k8s中容器的数量很多,如何保证每个容器都准备就绪了?通过zk中登记的状态。

2、为了降低难度,在数据库扩容期间,k8s的容器不要进行扩容,要保持集群稳定状态。

3、步骤较多,为了防止人为出错,要开发相应的界面,按流程一步一步进行,每一步会自动检测是否就绪,上一步没有完成期间(系统定时检测或者按钮检测),无法进入到下一步的界面。

4、如果扩容期间,容器挂了又自动产生一个新的,这时候 新容器的状态是准备就绪状态




推荐阅读
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • Ralph的Kubernetes进阶之旅:集群架构与对象解析
    本文深入探讨了Kubernetes集群的架构和核心对象,详细介绍了Pod、Service、Volume等基本组件,以及更高层次的抽象如Deployment、StatefulSet等,帮助读者全面理解Kubernetes的工作原理。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 深入探讨智能布线管理系统的电子配线架应用
    本文详细介绍了电子配线架智能布线系统的核心优势,包括实时监测网络连接、提高操作准确性、图形化显示连接架构、自动识别网络拓扑、增强安全性等功能。该系统不仅提升了网络管理的效率和准确性,还为资产管理、报告生成以及与其他智能系统的集成提供了强大的支持。 ... [详细]
  • HBase运维工具全解析
    本文深入探讨了HBase常用的运维工具,详细介绍了每种工具的功能、使用场景及操作示例。对于HBase的开发人员和运维工程师来说,这些工具是日常管理和故障排查的重要手段。 ... [详细]
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • 本文详细介绍了如何在 Android 中使用值动画(ValueAnimator)来动态调整 ImageView 的高度,并探讨了相关的关键属性和方法,包括图片填充后的高度、原始图片高度、动画变化因子以及布局重置等。 ... [详细]
  • 本文探讨了现代分布式架构的多样性,包括高并发、多活数据中心、容器化、微服务、高可用性和弹性架构等,并介绍了与这些架构相关的重要管理技术,如DevOps、应用监控和自动化运维。文章还深入分析了分布式系统的核心概念、主要用途及类型,同时对比了单体应用与分布式服务化的优缺点。 ... [详细]
author-avatar
手机用户2502933795
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有