返回顶部
首页 > 资讯 > 精选 >Shard-Jdbc数据库扩容的场景和问题的解决方法
  • 111
分享到

Shard-Jdbc数据库扩容的场景和问题的解决方法

2023-06-02 11:06:46 111人浏览 安东尼
摘要

这篇文章主要介绍“Shard-Jdbc数据库扩容的场景和问题的解决方法”,在日常操作中,相信很多人在Shard-Jdbc数据库扩容的场景和问题的解决方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shard

这篇文章主要介绍“Shard-Jdbc数据库扩容的场景和问题的解决方法”,在日常操作中,相信很多人在Shard-Jdbc数据库扩容的场景和问题的解决方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shard-Jdbc数据库扩容的场景和问题的解决方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、数据库扩容

1、业务场景

互联网项目中有很多“数据量大,业务复杂度高,需要分库分表”的业务场景。

Shard-Jdbc数据库扩容的场景和问题的解决方法

这样分层的架构
(1)上层是业务层biz,实现业务逻辑封装;
(2)中间是服务层service,封装数据访问;
(3)下层是数据层db,存储业务数据;

2、扩容场景和问题

当数据量持续新增,面临着这样一些需求,两台数据库无法容纳,需要数据库扩容,这里选择2台—扩容到3台的模式,如下图:

Shard-Jdbc数据库扩容的场景和问题的解决方法

这样扩容的问题
(1)分库分表的策略导致数据迁移量大;
(2)影响数据的持续服务性;
(3)指定时间完成,技术压力大,容易导致预想不到的错误;

如何平稳不停机迁移数据,保证系统持续服务,是本文将要讨论的问题。

二、扩容解决方案

1、扩容方案图解

Shard-Jdbc数据库扩容的场景和问题的解决方法

(1)分库分表基于MySQL数据库,使用shard-jdbc中间件
(2)该方案的思路整体基于SpringCloud微服务架构

2、解决扩容问题

(1)扩容情况下不需要暂停服务;
(2)数据迁移的压力小,不需要指定时间;

3、数据访问层逻辑

Shard-Jdbc数据库扩容的场景和问题的解决方法

方案描述
基于两台数据库分库分表,简称:服务二
基于三台数据库分库分表,简称:服务三
(1)提供两套服务,服务二和服务三
(2)数据库扩容后,如果访问服务三直接获取到数据,流程结束。
(3)如果访问服务三获取不到数据,则访问服务二获取数据。
(4)在迁移开始的一段时间内,访问压力还会在服务二上面。
(5)这样就做到数据访问服务不会停机。
(6)这种访问模式基于springCloud很容易做到。

4、数据迁移层逻辑

Shard-Jdbc数据库扩容的场景和问题的解决方法

方案描述

(1)关闭基于两台库的数据入库流程
(2)开启基于三台库的数据入库流程,这样新入库数据就可以被服务三直接访问到。
(3)开发数据迁移中间件,扫描原先两台库的数据。
(4)扫描的数据根据分三台库策略判断是否需要迁移。
(5)如果数据需要迁移,则调用服务三的数据入库接口。
(6)数据迁移完成后,删除原来的位置的数据。
(7)这种迁移模式基于SprinGCloud很容易做到。

5、该方案迁移的优点

(1)整个过程是持续对线上提供服务;
(2)数据迁移中间件的开发复杂度较低;
(3)可以限速慢慢迁移,没有时间压力;

三、源代码管理

GitHub·地址https://github.com/cicadasmile/spring-cloud-baseGitEE·地址Https://gitee.com/cicadasmile/spring-cloud-base

到此,关于“Shard-Jdbc数据库扩容的场景和问题的解决方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Shard-Jdbc数据库扩容的场景和问题的解决方法

本文链接: https://lsjlt.com/news/229956.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Shard-Jdbc数据库扩容的场景和问题的解决方法
    这篇文章主要介绍“Shard-Jdbc数据库扩容的场景和问题的解决方法”,在日常操作中,相信很多人在Shard-Jdbc数据库扩容的场景和问题的解决方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shard...
    99+
    2023-06-02
  • oracle数据库表空间扩容的问题怎么解决
    本文小编为大家详细介绍“oracle数据库表空间扩容的问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“oracle数据库表空间扩容的问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.查看表...
    99+
    2023-07-05
  • 解决StringBuffer和StringBuilder的扩容问题
    StringBuffer和StringBuilder的扩容 以前对StringBuffer/StringBuilder只是初浅的了解,只是知道StringBuffer是线程安全的,S...
    99+
    2024-04-02
  • 详解Mysql数据库平滑扩容解决高并发和大数据量问题
    目录1 停机方案2 停写方案3 平滑扩容之双写方案(中小型数据)4 平滑扩容之2N方案大数据量问题解决4.1 扩容问题4.2 解决方案4.3 双主架构思想4.4 环境部署5 数据库秒...
    99+
    2024-04-02
  • 怎么解决数据库分库分表无限扩容问题
    这篇文章主要讲解了“怎么解决数据库分库分表无限扩容问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决数据库分库分表无限扩容问题”吧!单体应用每个创业...
    99+
    2024-04-02
  • 如何解决StringBuffer和StringBuilder的扩容问题
    这篇文章主要讲解了“如何解决StringBuffer和StringBuilder的扩容问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决StringBuffer和StringBuil...
    99+
    2023-06-20
  • Mysql怎么数据库平滑扩容解决高并发和大数据量问题
    本篇内容主要讲解“Mysql怎么数据库平滑扩容解决高并发和大数据量问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql怎么数据库平滑扩容解决高并发和大数据量问题”吧!1 停机方案发布公告...
    99+
    2023-06-30
  • 登录EasyConnect后无法通过jdbc访问服务器数据库问题的解决方法
    目录问题描述:解决方案:总结问题描述: 通过EasyConnect登录后可以用xshell连接服务器,同时可以使用navicat和pymysql连接mysql数据库(无论是何数据库,...
    99+
    2023-02-24
    jdbc无法连接 jdbc访问服务器数据库 jdbc连接不到数据库
  • 5分钟快速了解数据库死锁产生的场景和解决方法
    前言 加锁(Locking)是数据库在并发访问时保证数据一致性和完整性的主要机制。任何事务都需要获得相应对象上的锁才能访问数据,读取数据的事务通常只需要获得读锁(共享锁),修改数据的...
    99+
    2024-04-02
  • 关于oracle数据库表空间扩容的问题
    目录1.查看表空间使用率2.扩容方法一:增大所需表空间大小方法二:增加数据文件个数方法三:设置表空间自动扩展3.遇到的错误总结1.查看表空间使用率 SELECT B.FILE_NAME 物理文件名, B....
    99+
    2023-02-15
    oracle表空间扩容 数据库表空间扩容 oracle表扩容
  • Redis主从复制问题和扩容问题的解决思路
    一、解决主从复制问题 当使用Redis作为存储引擎的时候,并且使用Redis读写分离,从机作为读的情况,从机宕机或者和主机断开连接都需要重新连接主机,重新连接主机都会触发全量的主从复制,这时候主机会生成内存...
    99+
    2022-06-04
    主从 思路 Redis
  • sql server2012附加数据库问题的解决方法
    sql server2012附加数据库问题的解决方法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SQLServer错误512...
    99+
    2024-04-02
  • SQL附加数据库失败问题的解决方法
    这篇文章将为大家详细讲解有关SQL附加数据库失败问题的解决方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。为了偷个懒,利用这个数据库,但是在附加的时候出错...
    99+
    2024-04-02
  • 数据库编程中的Python问题及解决方法
    数据库编程中的Python问题及解决方法引言:在现代软件开发中,数据库是不可或缺的一部分。Python作为一门功能强大的编程语言,可以与多种数据库进行交互和操作。然而,在数据库编程过程中,我们可能会遇到一些问题。本文将介绍一些常见的Pyth...
    99+
    2023-10-22
    Python 编程 关键词:数据库
  • 解决织梦CMS数据库链接问题的方法
    解决织梦CMS数据库链接问题的方法 作为一种常用的开源网站建设系统,织梦CMS在搭建网站过程中被广泛使用。然而,有时候在使用织梦CMS的过程中,我们会遇到数据库链接问题,导致网站无法正...
    99+
    2024-04-02
  • PHP数据库存储乱码问题的解决方法
    PHP是一种功能强大的服务器端脚本语言,被广泛应用于Web开发领域。在使用PHP进行数据库操作时,有时候会遇到数据库存储乱码的问题,特别是涉及到中文数据时。本文将介绍PHP数据库存储乱...
    99+
    2024-04-02
  • PHP实现数据库集群扩容的方法
    数据库集群是现代大型网站和企业级应用程序中常用的高可用性解决方案,实现负载均衡和数据冗余。随着业务规模的不断扩大,扩容或缩容成为集群管理的一项重要任务。本文将介绍如何利用PHP语言实现数据库集群的扩容。数据库集群数据库集群是由多个数据库服务...
    99+
    2023-05-15
    PHP 数据库集群 扩容
  • Oracle数据库中表锁定的常见场景及解决方案
    Oracle数据库中表锁定的常见场景及解决方案 在Oracle数据库中,表锁定是一个常见的数据库性能问题,当多个会话同时访问同一个表时,可能会导致表出现锁定,进而影响系统的性能和稳定。...
    99+
    2024-03-03
    解决方案 表锁定
  • 安装mysql数据库及问题解决方法
    1、mysql官网下载安装包,官网地址:www.mysql.com [root@seiang software]# ll total 580020 -rw-r--r--. 1...
    99+
    2024-04-02
  • 分布式场景下的数组同步问题:Go语言的解决方案
    在分布式系统中,对于多个节点之间的数据同步问题,数组同步问题是一个常见的难点。特别是在高并发、大数据量的场景下,同步的效率和准确性更是考验着系统的稳定性。Go语言作为一门高效且简洁的编程语言,在处理分布式场景下的数组同步问题方面有着独特的...
    99+
    2023-10-09
    数组 分布式 同步
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作