千家信息网

SpringCloud实现分库分表模式下,数据库实时扩容方

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一、项目结构1、工程结构2、模块命名shard-common-entity: 公共代码块shard-open-inte: 开放接口管理shard-eureka-7001:
千家信息网最后更新 2026年10月31日SpringCloud实现分库分表模式下,数据库实时扩容方

一、项目结构

1、工程结构

2、模块命名

shard-common-entity:   公共代码块shard-open-inte:        开放接口管理shard-eureka-7001:      注册中心shard-two-provider-8001: 8001 基于两台库的服务shard-three-provider-8002:8002 基于三台库的服务

3、代码依赖结构

4、项目启动顺序

(1)shard-eureka-7001:        注册中心(2)shard-two-provider-8001:  8001 基于两台库的服务(3)shard-three-provider-8002:8002 基于三台库的服务

按照顺序启动,且等一个服务完全启动后,在启动下一个服务,不然可能遇到一些坑。

二、核心代码块

1、8001 服务提供一个对外服务

基于Feign的调用方式 作用:基于两台分库分表的数据查询接口。郑州治疗不孕不育哪里好:http://www.zzfkyy120.com/

import org.springframework.cloud.netflix.feign.FeignClient;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import shard.jdbc.common.entity.TableOne;/** * shard-two-provider-8001 * 对外开放接口 */@FeignClient(value = "shard-provider-8001")public interface TwoOpenService {    @RequestMapping("/selectOneByPhone/{phone}")    TableOne selectOneByPhone(@PathVariable("phone") String phone) ;}

2、8002 服务提供一个对外服务

基于Feign的调用方式 作用:基于三台分库分表的数据存储接口。

import org.springframework.cloud.netflix.feign.FeignClient;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import shard.jdbc.common.entity.TableOne;/** * 数据迁移服务接口 */@FeignClient(value = "shard-provider-8002")public interface MoveDataService {    @RequestMapping("/moveData")    Integer moveData (@RequestBody TableOne tableOne) ;}

3、基于8002服务数据查询接口

查询流程图

代码块

/** * 8001 端口 :基于两台分库分表策略的数据查询接口 */@Resourceprivate TwoOpenService twoOpenService ;@Overridepublic TableOne selectOneByPhone(String phone) {    TableOne tableOne = tableOneMapper.selectOneByPhone(phone);    if (tableOne != null){        LOG.info("8002 === >> tableOne :"+tableOne);    }    // 8002 服务没有查到数据    if (tableOne == null){        // 调用 8001 开放的查询接口        tableOne = twoOpenService.selectOneByPhone(phone) ;        LOG.info("8001 === >> tableOne :"+tableOne);    }    return tableOne ;}

4、基于 8001 数据扫描迁移代码

迁移流程图

代码块

郑州不孕不育检查:http://wapyyk.39.net/zz3/zonghe/1d427.html

/** * 8002 端口开放的数据入库接口 */@Resourceprivate MoveDataService moveDataService ;/** * 扫描,并迁移数据 * 以 库 db_2 的 table_one_1 表为例 */@Overridepublic void scanDataRun() {    String sql = "SELECT id,phone,back_one backOne,back_two backTwo,back_three backThree FROM table_one_1" ;    // dataTwoTemplate 对应的数据库:ds_2    List tableOneList = dataTwoTemplate.query(sql,new Object[]{},new BeanPropertyRowMapper<>(TableOne.class)) ;    if (tableOneList != null && tableOneList.size()>0){        int i = 0 ;        for (TableOne tableOne : tableOneList) {            String db_num = HashUtil.moveDb(tableOne.getPhone()) ;            String tb_num = HashUtil.moveTable(tableOne.getPhone()) ;            // 只演示向数据新加库 ds_4 迁移的数据            if (db_num.equals("ds_4")){                i += 1 ;                LOG.info("迁移总数数=>" + i + "=>库位置=>"+db_num+"=>表位置=>"+tb_num+"=>数据:【"+tableOne+"】");                // 扫描完成:执行新库迁移和旧库清理过程                moveDataService.moveData(tableOne) ;                // dataTwoTemplate.update("DELETE FROM table_one_1 WHERE id=? AND phone=?",tableOne.getId(),tableOne.getPhone());            }        }    }}

三、演示执行流程

https://www.jianshu.com/p/fc56f6221728

1、项目流程图

2、测试执行流程

(1)、访问8002 数据查询端口

http://127.0.0.1:8002/selectOneByPhone/phone20日志输出:8001 服务查询到数据8001 === >> tableOne :+{tableOne}

(2)、执行8001 数据扫描迁移

http://127.0.0.1:8001/scanData

(3)、再次访问8002 数据查询端口

http://127.0.0.1:8002/selectOneByPhone/phone20日志输出:8002 服务查询到数据8002 === >> tableOne :+{tableOne}


数据 服务 接口 查询 代码 数据查询 流程 端口 开放 分库 分表 流程图 结构 项目 三台 对外 不孕不育 位置 作用 对外服务 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网公司装修 互联网金融与金融科技 互联网的科技创新 未来的互联网科技 美国互联网黑科技 富国互联网科技创新基金 济南华为互联网科技产业总部基地 温州喔噻互联网科技有限公司 恒银科技与互联网金融 承德科技产业互联网发展 湖南诚度互联网科技有限公司 互联网科技大奖都有哪些公司 广州新华互联网科技学校电竞方面 高科技互联网发展前景如何 伊宁互联网科技做什么的 互联网科技年终奖 半导体是互联网高科技吗 郑州欣桑互联网科技有限公司 互联网硬科技公司 伍佰万互联网科技是干嘛的 百单网互联网科技有限公司怎么样 广东万易互联网科技有限公司惠州分公司 奇酷互联网络科技 广州宏创互联网科技 宁夏众和广鑫互联网科技有限公司 伍佰万互联网科技怎么赚钱 互联网科技手机排行榜 唐山双旺合互联网科技产业园 上海互联网科技园景观 科技美学互联网 艺术
0