自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 分库分表之实战-sharding-JDBC分库分表执行流程原理剖析

本文深入解析 Sharding-Jdbc 分库分表执行机制。其作为应用层嵌入式代理,通过引入 jar 包内置分库分表逻辑,屏蔽多库复杂度,实现逻辑表到真实数据节点的自动映射。核心流程为五步:SQL 解析(词法、语法分析提取分片上下文);路由(依分片键或广播策略定位节点);改写(逻辑 SQL 转物理 SQL);执行(内存 / 连接限制模式平衡效率与资源);结果归并(流式 / 内存方式聚合多节点结果)。全文结合架构与流程拆解,助开发者理解底层机制,支撑高并发大数据场景实践。

2025-07-10 15:27:09 1266 36

原创 【SpringBoot实战系列】SpringBoot3.X 整合 MinIO 存储原生方案

本文基于 SpringBoot3.X 版本,详细介绍了通过原生 SDK 整合 MinIO 对象存储服务的完整方案。内容涵盖环境准备(JDK、MinIO 服务部署等)、项目依赖配置、核心配置文件与配置类编写,以及文件上传等核心功能的开发实现,并包含接口测试验证方法与桶权限管理等注意事项。方案依托 MinIO 兼容 S3 API、轻量级部署的特性,结合 SpringBoot 的自动化配置优势,可快速满足云存储、内容管理系统等场景的文件存储需求,为开发者提供了从环境搭建到功能落地的全流程指南。

2025-07-10 15:25:08 1021 21

原创 分库分表之实战-sharding-JDBC水平分库+分表后:查询与删除操作实战

本文主要探讨了在水平分库分表架构中,查询和删除操作的路由逻辑及其性能影响。文章通过实战案例,详细解析了在有分片键和无分片键场景下的路由规则,并结合Sharding-JDBC的实现原理,总结了高效操作的最佳实践。

2025-07-09 16:44:06 1456 27

原创 分库分表之实战-sharding-JDBC绑定表配置实战

本文详细介绍了 Sharding-JDBC 中的绑定表机制,旨在优化分布式数据库中多表关联查询的性能。绑定表是指分片规则完全一致的主表与子表,通过强制同分片关联,避免了笛卡尔积查询和数据关联错误的问题。文章通过实战案例,展示了如何在 Sharding-JDBC 中配置绑定表,并解释了绑定表的查询原理和注意事项。最后总结指出,绑定表是优化分片子表关联查询的核心机制,能够显著提升分布式查询的效率和稳定性。

2025-07-09 16:40:47 1380 25

原创 分库分表之实战-sharding-JDBC水平分库+水平分表配置实战

摘要 本文介绍了使用Sharding-JDBC实现水平分库分表的实战案例。主要内容包括: 架构设计:采用user_id取模分库和product_order_id取模分表策略,确保数据均匀分布。 配置实现:详细展示了SpringBoot项目中application.properties的配置方法,包括分库分表规则定义和实际数据节点设置。 测试验证:通过单元测试生成模拟数据,并分析了逻辑SQL与实际路由SQL的转换过程,验证了分片策略的正确性。 结果展示:确认数据按照预期规则被正确分布到ds0和ds1两个库的p

2025-07-08 20:53:08 1166 31

原创 分库分表之实战-sharding-JDBC广播表

本文深入解析Sharding-JDBC广播表的核心概念与实战应用。广播表作为分库分表场景中的特殊设计,通过全库复制机制确保数据一致性,适用于字典表、配置表等需高频关联查询的小表场景。文章详细演示了Spring Boot项目中广播表的配置流程,包括SQL建表、POJO定义、配置参数设置及单元测试验证,并提供了字段命名规范、表结构变更等避坑指南。最后总结广播表的适用场景与决策建议,强调其在简化跨库关联、提升查询效率方面的优势,同时提醒需权衡存储成本和同步开销。

2025-07-08 20:42:29 1425 24

原创 分库分表之实战-sharding-JDBC

本文介绍了使用Sharding-JDBC实现分库分表的实战教程。主要内容包括: 创建SpringBoot2.5+MybatisPlus项目环境,配置Maven依赖 准备测试数据库环境,创建两个订单数据库(ccc_shop_order_0/1)和对应的订单表(product_order_0/1) 详细讲解分库分表配置,包括Sharding-JDBC的整合与使用 实现分布式ID生成方案,解决分库分表下的ID冲突问题 文章属于分库分表系列教程的第6篇,前5篇分别介绍了数据库性能优化、分库分表优缺点、分片分类、策略

2025-06-30 19:43:02 984 8

原创 虚拟机中使用docker部署MySql8.0并进行连接与设置允许远程连接

本文详细介绍了Docker的安装配置及MySQL8.0容器化部署流程。主要内容包括: Ubuntu/CentOS系统下Docker的完整安装步骤,包括镜像加速配置和常见权限问题解决方案 MySQL8.0容器化部署方法,包含数据卷挂载和配置文件设置 MySQL客户端安装及连接测试 配置MySQL远程访问的完整流程,包括修改配置文件、开放防火墙端口等 最终通过Java代码验证远程连接成功 文章提供了详细的命令行操作步骤和常见问题解决方案,适合需要快速部署Docker环境下的MySQL服务的开发者参考。

2025-06-30 16:29:53 395 5

原创 分库分表下的 ID 冲突问题与雪花算法讲解

分库分表场景下传统自增ID会导致主键冲突,本文对比分析了五种分布式ID方案:改进型数据库自增ID(步长设置)、UUID(全局唯一但无序)、Redis发号器(高性能但依赖外部服务)、Snowflake算法(趋势递增)和数据库号段模式(批量化)。重点剖析了Snowflake算法的64位结构设计(时间戳41位+数据中心5位+机器ID5位+序列号12位),并提供了Java实现示例。方案选型建议根据业务场景在性能、唯一性、依赖性等维度权衡,Snowflake

2025-06-22 20:41:59 854 1

原创 分库分表技术栈讲解-Sharding-JDBC

本文对比分析业界主流分库分表中间件,从架构模式、性能、适用场景等维度展开。客户端模式(如Sharding-JDBC)以jar包形式集成,性能最优但需代码改造;代理模式(如Mycat)对应用透明但存在性能损耗。文章详细对比了Sharding-JDBC、Mycat、Sharding-Proxy和TDDL的核心特性,包括数据库支持、分片规则、事务能力等,为技术选型提供参考。最后指出选型需综合考虑项目规模、团队能力和运维成本,中小项目可优先考虑Sharding-JDBC,异构系统则适合Mycat方案。

2025-06-22 19:42:28 802 1

原创 分库分表之策略

摘要 本文详细解析了数据库分库分表的核心策略——RANGE范围拆分与Hash取模拆分。RANGE拆分通过区间分段实现数据分片,适用于日志类、时效性强及可预测增长的场景,具有扩容简单、规则清晰等优势,但存在数据热点、资源利用率低等问题。Hash取模则利用哈希函数将数据均匀分布,适合用户维度强相关业务,需处理扩容时的数据迁移难题。文章通过具体案例对比两种策略的适用场景与实现逻辑,为数据库性能优化提供实践指导。

2025-06-19 20:18:27 1290

原创 分库分表之数据库分片分类

本文系统分析了数据库分库分表优化方案。首先介绍垂直分表,通过拆分主表和扩展表减少IO负载,适用于大字段和低频访问场景。然后阐述垂直分库如何按业务模块拆分数据库解决资源瓶颈。文章重点解析水平分库分表技术,包括范围、哈希等多种拆分策略,解决单表数据量过大和并发性能问题。最后探讨分库分表带来的技术挑战及解决方案,如跨库查询、分布式事务等。提供了电商系统等实际案例,并对比不同方案的优缺点,为数据库性能优化提供系统指导。(149字)

2025-06-18 16:33:58 798 1

原创 分库分表之优缺点分析

《分库分表技术解析:原理、挑战与实战应对策略》 文章系统剖析了分库分表技术的内在逻辑与核心挑战。首先揭示了数据库性能的三大瓶颈:连接数限制、单表数据膨胀和并发压力,指出分库分表是突破这些限制的关键手段。随后深入分析了由此衍生的六大技术难题:跨节点Join查询、分布式事务一致性、排序分页计算、全局ID生成、动态扩容规划以及中间件选型困境,并通过电商订单等典型场景说明问题本质。文章特别强调,分库分表不是简单的数据拆分,而是需要权衡业务特征与技术复杂度,配套解决方案需覆盖从数据迁移到查询优化的全流程。最后预告将针

2025-06-18 15:20:26 762 2

原创 由一个面试题引发出的众多面试题之数据库性能优化

数据库性能优化方案 针对单表千万级数据且持续增长导致的性能问题,核心优化思路如下: 索引优化 分析慢查询日志,使用EXPLAIN检查索引使用情况 针对高频查询创建合适索引,避免全表扫描 定期重建索引解决碎片化问题 I/O性能提升 扩大InnoDB缓冲池大小 考虑SSD存储提升I/O速度 避免SELECT *查询,减少数据传输量 查询优化 更新统计信息确保优化器准确决策 重写复杂查询,减少JOIN和子查询 使用覆盖索引减少回表操作 架构扩展 考虑分表分库策略 读写分离减轻主库压力 冷热数据分离,归档历史数据

2025-06-17 20:39:34 987 3

原创 SpringBoot框架与应用与面向切面编程

摘要:SpringBoot框架通过"约定优于配置"理念,解决了传统Java EE开发的配置复杂性问题。其核心特性包括:自动配置机制(基于类路径智能推断)、标准化起步依赖管理、嵌入式容器简化部署、灵活的外部化配置系统。SpringBoot与SpringCloud的无缝集成使其成为构建微服务架构的首选,支持快速开发RESTful API和服务间通信。该框架显著提升了Java企业级应用的开发效率,实现"开箱即用"的生产级别应用搭建。

2025-06-12 17:17:33 719 5

原创 C++实现图书管理系统(Qt C++ GUI界面版)

qtc++,文件流存储,面向对象,图书管理系统,GUI界面,多文件,运算符重载,多态,封装,继承

2025-01-05 17:10:36 808 2

原创 【C++】实现学生信息管理系统

C++实现学生信息管理系统,多态,继承,运算符重载,封装,面向对象

2024-07-20 23:05:42 602

原创 【C++】实现学生管理系统

c++实现学生管理系统完整版,重载符号、容器使用,文件读写

2024-06-16 21:05:22 759 1

原创 四非保研之旅

保研、西安电子科技大学、苏州大学、重庆大学、夏0营、夏令营、预推免、保研焦虑、保研经历、保研分享、四非保研、保送

2024-02-20 23:38:50 1967 26

原创 【JavaScript】实现仿windows计算器(完整版)

js实现仿windos计算器往期源码回顾:【Java】实现绘图板(完整版)【C++】图书管理系统(完整板)【Java】实现计算器(完整版)【Python】实现爬虫,爬取天气情况并进行分析(完整版)【Java】实现记事本(完整版)【Java】实现多线程计算阶乘和(完整版)【Java】实现聊天程序(完整版)本项目速览:3.功能模块划分:4.部分函数流程图:5.设计与实现

2022-09-02 00:27:07 2808 25

原创 【SpringBoot实战系列】从AOP+自定义注解到redission分布式锁-接口防重提交场景设计实战

自定义注解分布式锁aop

2022-08-02 00:01:29 1604 14

原创 【SpringBoot实战系列】RabbitMQ实现消息发送并实现邮箱发送异常监控报警实战

RabbitMQ邮箱发送邮件发送

2022-07-30 00:00:14 2147 17

原创 【SpringBoot实战系列】Sharding-Jdbc实现分库分表到分布式ID生成器Snowflake自定义wrokId实战

分库分表雪花算法Sharding-jdbc

2022-07-27 00:01:05 1227 16

原创 【SpringBoot实战系列】阿里云OSS接入上传图片实战

是在ApacheLicensev2.0下发布的对象存储服务器,学习成本低,安装运维简单,主流语⾔的客户端整合都有,号称最强的对象存储⽂件服务器,且可以和容器化技术docker/k8s等结合,社区活跃但不够成熟,业界参考资料较少。优点功能强⼤、可以根据业务做⼆次的定制,新⼀代分布式⽂件存储系统,容器化结合强⼤,更重要的是免费(购买磁盘、内存、带宽)阿⾥云⽤于各个产品的权限,基于RBAC、ACL模型都有,进⾏简单管理账号、统⼀分配权限、集中管控资源,从⽽建⽴安。安全、低成本、⾼持久的云存储服务。...

2022-07-25 00:06:30 1478 15

原创 SpringBoot实战系列之图形验证码开发并池化Redis6存储

使⽤连接池不⽤每次都⾛三次握⼿、每次都关闭Jedis相对于直连,使⽤相对麻烦,在资源管理上需要很多参数来保证,规划不合理也会出现问题。如果pool已经分配了maxActive个jedis实例,则此时pool的状态就成exhausted了。注意将配置里的host和password改为。验证码内容的范围(数字,字⺟,中⽂汉字!验证码图⽚的⼤⼩,边框,边框粗细,边框颜⾊。验证码的样式(⻥眼样式、3D、普通模糊)验证码的字体/⼤⼩/颜⾊。...

2022-07-24 00:00:41 584 26

原创 SpringBoot实战系列之从Async组件应用实战到ThreadPoolTaskExecutor⾃定义线程池

ThreadPoolExecutor,这个类是JDK中的线程池类,继承⾃Executor,⾥⾯有⼀个execute()⽅法,⽤来执⾏线程,线程池主要提供⼀个线程队列,队列中保存着所有等待状态的线程,避免了创建与销毁的额外开销。Spring在扫描bean的时候会扫描⽅法上是否包含@Async注解,动态地⽣成⼀个⼦类(即proxy代理类),当这个有注解的⽅法被调⽤的时候,实际上是由代理类来调⽤的,代理类在调⽤时增加异步作⽤。查看核⼼线程池是否已满,不满就创建⼀条线程执⾏任务,否则执⾏第⼆步。...

2022-07-23 00:00:14 1043 12

原创 SpringBoot实战系列之发送短信验证码

springboot实战发送短信验证码

2022-07-21 21:47:02 1955 12

原创 Gitee仓库介绍和项目纳入版本管理+ignore文件配置

是⼀个版本管理⼯具,其作⽤就是可以让你更好的管理你的程序,⽐如你原来提交过的内容,以后虽然修改了,但是通过git这个⼯具,可以把你原来提交的内容᯿现出来,这样对于你后来才意识到的⼀些错误的更改,可以进⾏还原。1.打开powshell本地⽣成公钥,输入命令ssh-keygen-trsa-C“你的邮箱”还可参考⽣成公钥⽂档https//gitee.com/help/articles/4181。配置好后,在idea中项目的根目录终端输入。我的-》点击对应项目-》管理-》添加公钥。...

2022-07-21 00:42:30 750 3

原创 环境搭建大集合(Docker搭建各种中间件)

1.docker部署Mysql8.0 docker部署Redis6docker部署nacos2.x+持久化Mysql8docker部署RabbitMQ

2022-07-21 00:27:43 1190 10

原创 一起刷算法与数据结构-树篇1

重建二叉树 二叉树的下一个节点树的子结构二叉树的镜像对称的二叉树 不分行从上往下打印二叉树二叉搜索树的后续遍历序列二叉树中和为某一值的路径二叉搜索树的第K个节点二叉树的深度...

2022-07-19 16:52:08 402 15

原创 一起刷算法与数据结构-链表篇2

一般具有这种旁边的第一个最大/最小问题,我们都可以用单调栈解决,一般来说都是找左边的,这样便于我们编写代码,而这题确是从右边找,但是我们只需要逆序开始从左找,再把答案反向输出,即可得到本题答案。目前力扣上的关于链表的题目都刷的差不多了,除了实在不会的以及和树相关的,等着和树一起刷,接下来就是刷树啦!好了,链表篇就告一段落啦,我没有解决的题解决了会更新滴,大家也可以去尝试尝试哦!题目7.链表中的下一个更大节点。题目6.两两交换链表中的节点。...

2022-07-15 20:19:03 478 19

原创 Docker部署kafka Zookeeper

部署kafka,zookeeperkafka-topics.sh--create--zookeeper服务器私网2181--replication-factor1--partitions1--topicmykafka。KAFKA_ZOOKEEPER_CONNECT=“服务器的私网ip2181”-e。KAFKA_ADVERTISED_HOST_NAME=“服务器公网ip”-v。部署Zookeeper。进入kafka容器内部。进⼊kafka默认⽬录。...

2022-07-14 20:30:57 872 3

原创 一起刷算法与数据结构-链表篇1

一起刷算法与数据结构专栏说明:接下来进入的开始篇:一起刷算法与数据结构-链表篇1题目1.在O(1)时间删除链表节点题目2.删除链表中重复的节点题目3.链表中环的入口节点题目4.反转链表题目5.两个链表的第一个公共结点 题目6.奇偶链表题目7.链表随机节点题目8.合并两个链表题目9.删除链表的倒数第N个元素题目10.从链表中删去总和值为0的连续节点题目1.在O(1)时间删除链表节点解题思路:参考代码(c++):题目2.删除链表中重复的节点 解题思路:拓展:头指针和头节点的区别参考代码(

2022-07-12 20:32:56 592 18

原创 五分钟学会 Java高级核心之玩转 JDK8 集合框架

本篇文章讲的是Java高级级核心之玩转 JDK8 集合框架,包含实战,希望对大家有帮助,这些都是Java编程中的目录: Java新特性玩转JDK8之流Stream实战执行结果:是不是特别简单jdk8里面的流stream里的map和filter函数的使用UserDTO操作代码:结果:结果如下:还有我:哈哈哈,不信?不信你看:+ 流stream里的limit和sorted函数的使用(默认升序):根据长度排序:结果:此时一只大阪黑鸡告诉我,他想降序怎么搞,我直接告诉他你这样操作

2022-07-09 22:51:42 1059 17

原创 IDEA设置lombok插件

什么是lombokIdea设置lombok插件2.然后按图操作之后重起IDEA3.再按下图操作:大功告成

2022-07-08 23:53:58 605 8

原创 【云原生】docker入门基础

本文主要提供了docker的常用命令,以及dockerfile,docker-compose的使用本文目录:1.什么是docker2.为什么要用?3.Linux下安装docker4.如何搜索docker镜像5.配置阿里云镜像加速6.什镜像与容器之间的关系7.Docker容器的创建,查看,停止,重启等8.commit构建自定义镜像9.Dockerfile构建镜像实战10.Dockerfile基础指令11.Dockerfile构建JAVA网站镜像12.安装docker-compose1

2022-07-08 22:22:26 450 17

原创 Navicat导入15G数据报错 【2013 - Lost connection to MySQL server during query】 【1153:Got a packet bigger】

最近一个项目用Navicat导入15G数据(30w+条)刚开始跑完错误了20w+条,查看报错有以下:最终解决方法:然后,试过其他方法但是都没解决,包括解决方案1解决方案2

2022-07-04 23:08:21 608 9

原创 一起备战蓝桥杯与CCF-CSP之大模拟炉石传说

之前我们已经讲解了我们的备战思路以及一些题目,大家忘记了可以去看看哦!!1.备战思路及大模拟模板生成系统2.一起备战蓝桥杯与CCF-CSP之大模拟画图)3.一起备战蓝桥杯与CCF-CSP之大模拟路径解析什么,你作业很多?快来看看作业侠系列的最新文章有没有你需要的吧!作业侠最新文章话不多说,开始今天的题目讲解,这次我们要模拟的是炉石传说!具体题目如下(图片来源:ACwing):官网对应链接:炉石传说先说刷题感想:解题思路:上面的问题如何解决,见下面代码里的注释代码如下(不正确版,反面教材,不过思路没

2022-06-25 21:54:40 840 16

原创 软件过程与项目管理期末复习与重点

项目的定义:项目的特征:项目目标:需求建议书的主要内容:申请书的主要内容::一份申请书至少需要包括:是否投标决策:工作分解结构的定义:为什么要考虑资源约束的因素项目风险识别项目经历职责:项目经理应该具备的技能项目经理应该具备的技能创建激励的环境(有效的项目团队的特点):解决问题的9步骤法项目组织结构工程记事本是什么,作用是什么缺陷追踪的步骤项目选择的步骤...

2022-06-21 17:10:41 596 2

原创 【Java】实现聊天程序(完整版)

往期源码回顾:【Java】实现绘图板(完整版)【C++】图书管理系统(完整板)【Java】实现计算器(完整版)【Python】实现爬虫,爬取天气情况并进行分析(完整版)【Java】实现记事本(完整版)【Java】实现多线程计算阶乘和(完整版)上述源码我的大家有需要可自取,大家不想cv或者cv了跑不起来都可以来找我要源码。设计思路:运行后分为客户端和服务端运行结果如下:实现代码:客户端UI:客户端类:服务端UI:服务端类:好了,今天就到这里吧,喜欢记得三连哦!......

2022-06-20 16:16:47 8611 20

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除