
FreeMarker
强大且灵活的 Java 模板引擎
Apache ShardingSphere 是一款开源的 分布式数据库中间件生态圈,由 Apache 软件基金会 孵化并毕业,旨在为关系型和非关系型数据库提供 分库分表、读写分离、分布式事务、数据加密 等能力。其核心设计理念是 **”Database Plus”,通过可插拔架构扩展数据库功能,适用于 高并发、大数据量、多云混合部署** 等复杂场景。
user_id % 3
分片)组件 | 功能说明 |
---|---|
ShardingSphere-JDBC | 轻量级 Java 驱动,透明化分库分表(无需代理) |
ShardingSphere-Proxy | 数据库代理服务,支持多语言访问(如 Python、Go) |
ShardingSphere-Sidecar | Kubernetes Sidecar 模式(开发中) |
ShardingSphere-Scaling | 数据迁移工具(全量+增量同步) |
# application.yml
spring:
shardingsphere:
datasource:
names: ds0,ds1
ds0: # 主库
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://db0:3306/db?useSSL=false
username: root
password: 123456
ds1: # 从库
jdbc-url: jdbc:mysql://db1:3306/db?useSSL=false
sharding:
tables:
t_order: # 订单表分片规则
actual-data-nodes: ds$->{0..1}.t_order_$->{0..15} # 2库×16表
table-strategy:
standard:
sharding-column: order_id
precise-algorithm-class-name: com.example.ModuloShardingAlgorithm
@ShardingTransactionType(TransactionType.BASE) // 声明 BASE 事务
@Transactional // Spring 事务注解
public void placeOrder(Order order) {
orderRepository.insert(order);
inventoryRepository.deduct(order.getItemId());
}
user_id
)SELECT *
,只查询必要字段maxPoolSize
spring.shardingsphere.props.max.connections.size.per.query=5
本站速览导航提供的Apache ShardingSphere都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由速览导航实际控制,在2025年4月1日 下午9:23收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,速览导航不承担任何责任。