Tomcat 源码构建及核心流程剖析
一、源码构建
仅做简单思路介绍,读源码的方式很多种…
下载源码
下载xxx-xxx-xxx-src的源码包
解压后在目录下创建pox.xml文件,内容如下
仅做简单思路介绍,读源码的方式很多种…
下载源码
下载xxx-xxx-xxx-src的源码包
解压后在目录下创建pox.xml文件,内容如下
实战代码示例: https://gitee.com/ixinglan/mysql-demo.git
sharding-jdbc-demo: 详见README.md 介绍
我们演示position表的分库
CREATE TABLE `position` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`salary` varchar(10) DEFAULT NULL,
`city` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4;
# datasource, 配置两个数据源, 这里配置我们刚创建的两个库
spring:
shardingsphere:
datasource:
names: ds0,ds1
ds0:
type: com.zaxxer.hikari.HikariDataSource
driver-class: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://localhost:3306/sharding-demo1
username: root
password: 123456
ds1:
type: com.zaxxer.hikari.HikariDataSource
driver-class: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://localhost:3306/sharding-demo2
username: root
password: 123456
# sharding-database 先采用 inline 行表达式的形式配置分库策略: 模2
sharding:
tables:
position:
databaseStrategy:
inline:
shardingColumn: id
algorithmExpression: ds$->{id % 2}
我们在1.1中, 主键是手动指定生成的, 这节我们改造一下,使用主键生成器
名称:Minicat
Minicat要做的事情:作为⼀个服务器软件提供服务的,也即我们可以通过浏览器客户端发送http请求,Minicat可以接收到请求进⾏处理,处理之后的结果可以返回浏览器客户端。
表概念
真实表: 数据库中真实存在的物理表
逻辑表: 在分片之后,同一类表结构的名称(总成)。例如b_order。
数据节点: 在分片之后,由数据源和数据表组成。例如ds0.b_order1
ApacheShardingSphere是一款开源的分布式数据库中间件组成的生态圈。
它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(规划中)这3款相互独立的产品组成。他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。