随笔分类 -  分库分表

摘要:在传统数据库软件开发过程中,主键自动生成技术是基本需求。各个数据库对该需求也提供了相应的支持,比如 MySQL 的自增键,Oracle 的自增序列等。而在分片场景下,问题就变得有点复杂,我们不能依靠单个实例上的自增键来实现不同数据节点之间的全局唯一主键,这时分布式主键的需求就应运而生。Shardin 阅读全文
posted @ 2020-11-19 19:58 天宇轩-王 阅读(1107) 评论(0) 推荐(1) 编辑
摘要:什么是微内核架构? 微内核是一种典型的架构模式 ,区别于普通的设计模式,架构模式是一种高层模式,用于描述系统级的结构组成、相互关系及相关约束。微内核架构在开源框架中的应用也比较广泛,除了 ShardingSphere 之外,在主流的 PRC 框架 Dubbo 中也实现了自己的微内核架构。那么,在介绍 阅读全文
posted @ 2020-11-19 19:07 天宇轩-王 阅读(690) 评论(0) 推荐(0) 编辑
摘要:如何系统剖析 ShardingSphere 的代码结构? 在阅读开源框架时,我们碰到的一大问题在于,常常会不由自主地陷入代码的细节而无法把握框架代码的整体结构。市面上主流的、被大家所熟知而广泛应用的代码框架肯定考虑得非常周全,其代码结构不可避免存在一定的复杂性。对 ShardingSphere 而言 阅读全文
posted @ 2020-11-19 16:59 天宇轩-王 阅读(482) 评论(0) 推荐(0) 编辑
摘要:ShardingSphere 如何抽象数据脱敏? 数据脱敏从概念上讲比较容易理解,但在具体实现过程中存在很多方案。在介绍基于数据脱敏的具体开发过程之前,我们有必要先来梳理实现数据脱敏的抽象过程。这里,我将从敏感数据的存储方式、敏感数据的加解密过程以及在业务代码中嵌入加解密的过程这三个维度来抽象数据脱 阅读全文
posted @ 2020-11-18 21:15 天宇轩-王 阅读(1624) 评论(0) 推荐(0) 编辑
摘要:sharding-proxy+sharding-ui安装使用配置 sharding官网 https://shardingsphere.apache.org/document/current/cn/manual/sharding-proxy/ 运行mysql(已运行则略) 启动zookeeper(已启 阅读全文
posted @ 2020-11-18 16:13 天宇轩-王 阅读(2092) 评论(0) 推荐(0) 编辑
摘要:什么是行表达式? 在引入配置体系的学习之前,我们先来介绍 ShardingSphere 框架为开发人员提供的一个辅助功能,这个功能就是行表达式。 行表达式是 ShardingSphere 中用于实现简化和统一配置信息的一种工具,在日常开发过程中应用得非常广泛。 它的使用方式非常直观,只需要在配置中使 阅读全文
posted @ 2020-11-17 23:42 天宇轩-王 阅读(2941) 评论(0) 推荐(0) 编辑
摘要:JDBC 规范简介 ShardingSphere 提供了与 JDBC 规范完全兼容的实现过程,在对这一过程进行详细展开之前,先来回顾一下 JDBC 规范。JDBC(Java Database Connectivity)的设计初衷是提供一套用于各种数据库的统一标准,而不同的数据库厂家共同遵守这套标准, 阅读全文
posted @ 2020-11-17 20:47 天宇轩-王 阅读(622) 评论(0) 推荐(0) 编辑
摘要:ShardingSphere 的发展历程:从 Sharding-JDBC 到 Apache 顶级项目 说到 ShardingSphere 的起源,我们不得不提 Sharding-JDBC 框架,该框架是一款起源于当当网内部的应用框架,并于 2017 年初正式开源。从 Sharding-JDBC 到 阅读全文
posted @ 2020-11-13 15:27 天宇轩-王 阅读(1041) 评论(0) 推荐(1) 编辑
摘要:一、安装 1.下载 https://shardingsphere.apache.org/document/current/cn/downloads/ 2.安装和配置 (1)解压: [root@database ~]# wget https://mirrors.tuna.tsinghua.edu.cn 阅读全文
posted @ 2020-11-13 14:08 天宇轩-王 阅读(1004) 评论(0) 推荐(0) 编辑
摘要:数据库设计数据库设计如下,其中商品与店铺信息之间进行了垂直分库,分为了PRODUCT_DB(商品库)和STORE_DB(店铺库);商品信息还进行了垂直分表,分为了商品基本信息(product_info)和商品描述信息(product_descript),地理区域信息(region)作为公共表,冗余在 阅读全文
posted @ 2020-02-18 21:58 天宇轩-王 阅读(342) 评论(0) 推荐(2) 编辑
摘要:前面的一篇博客,就写了mysql的读写分离,具体配置如下: server: port: 56081 servlet: context-path: /sharding-jdbc-simple-demo spring: application: name: sharding-jdbc-simple-de 阅读全文
posted @ 2020-02-18 17:02 天宇轩-王 阅读(431) 评论(0) 推荐(1) 编辑
摘要:前面已经介绍过,垂直分库是指按照业务将表进行分类,分布到不同的数据库上面,每个库可以放在不同的服务器上,它的核心理念是专库专用。接下来看一下如何使用Sharding-JDBC实现垂直分库。(1)创建数据库创建数据库user_db 的t_user表中 CREATE TABLE`t_user`( `us 阅读全文
posted @ 2020-02-16 14:17 天宇轩-王 阅读(376) 评论(0) 推荐(1) 编辑
摘要:配置信息: server: port: 56081 servlet: context-path: /sharding-jdbc-simple-demo spring: application: name: sharding-jdbc-simple-demo http: encoding: enabl 阅读全文
posted @ 2020-02-15 21:34 天宇轩-王 阅读(540) 评论(0) 推荐(1) 编辑
摘要:基本概念在了解Sharding-JDBC的执行原理前,需要了解以下概念:逻辑表水平拆分的数据表的总称。例:订单数据表根据主键尾数拆分为10张表,分别是 t_order_0 、 t_order_1 到t_order_9 ,他们的逻辑表名为 t_order 。真实表在分片的数据库中真实存在的物理表。即上 阅读全文
posted @ 2020-02-15 16:56 天宇轩-王 阅读(6667) 评论(0) 推荐(2) 编辑
摘要:创建数据库 DROP TABLE IF EXISTS `t_order_1`; CREATE TABLE `t_order_1`( `order_id` bigint(20) NOT NULL COMMENT'订单id', `price` decimal(10,2) NOT NULL COMMENT 阅读全文
posted @ 2020-02-15 16:22 天宇轩-王 阅读(821) 评论(0) 推荐(1) 编辑
摘要:分库分表是什么 随着公司业务快速发展,数据库中的数据量猛增,访问性能也变慢了,优化迫在眉睫。分析一下问题出现在哪儿呢? 关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍 阅读全文
posted @ 2020-02-14 17:01 天宇轩-王 阅读(530) 评论(0) 推荐(1) 编辑
摘要:Mycat 是数据库中间件1 数据库中间件中间件:是一类连接软件组件和应用的计算机软件,以便于软件各部件之间的沟通。例子:Tomcat,web中间件。数据库中间件:连接java应用程序和数据库2 为什么要用Mycat ?① Java与数据库紧耦合。② 高访问量高并发对数据库的压力。③ 读写请求数据不 阅读全文
posted @ 2020-01-10 15:05 天宇轩-王 阅读(507) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示