做天猫还是做网站推广照片在线处理工具
- 作者: 五速梦信息网
- 时间: 2026年04月18日 10:00
当前位置: 首页 > news >正文
做天猫还是做网站推广,照片在线处理工具,seo快速排名是什么,WordPress全屏轮播图一、ShardingSphere产品介绍 Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈#xff0c;它由 JDBC、Proxy 和 Sidecar#xff08;规划中#xff09;这 3 款相互独立#xff0c;却又能够混合部署配合使用的产品组成。 它们均提供标准化的数据分…一、ShardingSphere产品介绍 Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈它由 JDBC、Proxy 和 Sidecar规划中这 3 款相互独立却又能够混合部署配合使用的产品组成。 它们均提供标准化的数据分片、分布式事务和数据库治理功能可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。 一套开源的分布式数据库中间件解决方案。有三个产品JDBC、Proxy、Sidecar。 三者的区别如下 本文重点介绍ShardingJDBC这个组件该组件从应用层面解决了读写分离、分库分表、分布式事务等一系列问题。 1.ShardingJDBC介绍 ShardingJDBC定位为轻量级 Java 框架在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库以 jar 包形式提供服务无需额外部署和依赖可理解为增强版的 JDBC 驱动完全兼容 JDBC 和各种 ORM 框架。 适用于任何基于 JDBC 的 ORM 框架如JPA, Hibernate, Mybatis, Spring JDBC Template 或直接使用 JDBC。支持任何第三方的数据库连接池如DBCP, C3P0, BoneCP, Druid, HikariCP 等。支持任意实现 JDBC 规范的数据库目前支持 MySQLOracleSQLServerPostgreSQL 以及任何遵循 SQL92 标准的数据库。 二、代码实践 实现功能 通过ShardingJDBC分布分表的功能能够对一个数据库中的分片表进行读写操作。 开发环境 spring-boot-boot-starter 2.2.11.RELEASE、mybatis-plus-boot-starter 3.0.5、sharding-jdbc-spring-boot-starter 4.0.0-RC1 实现步骤 1配置pom依赖。 parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.2.11.RELEASE/versionrelativePath/ !– lookup parent from repository – /parent groupIdcom.yangnk/groupId artifactIdShardingJDBCDemo/artifactId version0.0.1-SNAPSHOT/version nameShardingJDBCDemo/name descriptionDemo project for Spring Boot/description propertiesjava.version1.8/java.version/properties dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactId/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.20/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependencydependencygroupIdorg.apache.shardingsphere/groupIdartifactIdsharding-jdbc-spring-boot-starter/artifactIdversion4.0.0-RC1/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.0.5/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency /dependencies 2配置文件application.properties主要配置数据源、主键生成策略、分表策略等。
sharding-jdbc 水平分表策略
配置数据源给数据源起别名
spring.shardingsphere.datasource.namesm1# 一个实体类对应两张表覆盖 spring.main.allow-bean-definition-overridingtrue# 配置数据源的具体内容包含连接池驱动地址用户名密码 spring.shardingsphere.datasource.m1.typecom.alibaba.druid.pool.DruidDataSource spring.shardingsphere.datasource.m1.driver-class-namecom.mysql.cj.jdbc.Driver spring.shardingsphere.datasource.m1.urljdbc:mysql://42.192.46.163:3306/test?serverTimezoneUTCuseSSLfalseallowPublicKeyRetrievaltrue spring.shardingsphere.datasource.m1.usernameroot spring.shardingsphere.datasource.m1.password777777# 指定course表分布的情况配置表在哪个数据库里表的名称都是什么 m1.course_1,m1.course2 spring.shardingsphere.sharding.tables.course.actual-data-nodesm1.course\(-{1..2}# 指定 course 表里面主键 cid 的生成策略 SNOWFLAKE spring.shardingsphere.sharding.tables.course.key-generator.columncid spring.shardingsphere.sharding.tables.course.key-generator.typeSNOWFLAKE# 配置分表策略 约定 cid 值偶数添加到 course_1 表如果 cid 是奇数添加到 course_2 表 spring.shardingsphere.sharding.tables.course.table-strategy.inline.sharding-columncid spring.shardingsphere.sharding.tables.course.table-strategy.inline.algorithm-expressioncourse_\)-{cid % 2 1}# 打开 sql 输出日志 spring.shardingsphere.props.sql.showtruespring.shardingsphere.mode.typeStandalone spring.shardingsphere.mode.repository.typeFile spring.shardingsphere.mode.overwritetrue orithms.course_tblalg.props.algorithm-expressioncourse\(-{cid%21} 配置中用到的Groovy表达式。 比如 m\)-\({0..1}.course_\)-{1..2} 和 course\(-{cid%21} 。这是ShardingSphere支持的Groovy表达式在后面会大量接触到这样的表达式。这个表达式中\)-{}部分为动态部分大括号内的就是Groovy语句。 两个点表示一个数据组的起点和终点。m\(-\){0..1}表示m0和m1两个字符串集合。course\(-{1..2}表示course_1和course_2集合。 course_\)-{cid%21} 表示根据cid的值进行计算计算的结果再拼凑上course_前缀。 3通过MyBatis-plusMyBatisX插件根据表关系生成Mapper、domain、Service文件其最后的代码目录为 创建course表的分片表course_1和course_2其sql脚本如下 CREATE TABLE course_1 (cid bigint NOT NULL,cname varchar(50) COLLATE utf8mb4_cs_0900_ai_ci NOT NULL,user_id bigint NOT NULL,status varchar(10) COLLATE utf8mb4_cs_0900_ai_ci NOT NULL,PRIMARY KEY (cid) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_cs_0900_ai_ci;CREATE TABLE course_2 (cid bigint NOT NULL,cname varchar(50) COLLATE utf8mb4_cs_0900_ai_ci NOT NULL,user_id bigint NOT NULL,status varchar(10) COLLATE utf8mb4_cs_0900_ai_ci NOT NULL,PRIMARY KEY (cid) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_cs_0900_ai_ci; 通过创建单元测试类来进行分布分表功能验证最终的效果是在course_1和course_2表中都有对应记录生成。 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.yangnk.shardingjdbcdemo.domain.Course; import com.yangnk.shardingjdbcdemo.mapper.CourseMapper; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import javax.annotation.Resource; import java.util.List;SpringBootTest public class ShardingJdbcDemoApplicationTest {Resourceprivate CourseMapper courseMapper;Testpublic void addCourse() {for (int i 0; i 100; i) {Course course new Course();//cid由我们设置的策略雪花算法进行生成course.setCname(Java);course.setUser_id(100L);course.setStatus(Normal);courseMapper.insert(course);}}Testpublic void queryCourse() {QueryWrapperCourse wrapper new QueryWrapperCourse();wrapper.eq(cid,1L);ListCourse courses courseMapper.selectList(wrapper);courses.forEach(course - System.out.println(course));} } 参考资料 为什么要分库分表https://www.cnblogs.com/donleo123/p/17295667.html 使用 ShardingSphere 实操MySQL分库分表实战https://segmentfault.com/a/1190000038241298 2-ShardingJDBC分库分表实战指南https://note.youdao.com/ynoteshare/index.html?id96778e1d8e6349062b4e2548e518c03ftypenote_time1696850841023 本文由博客一文多发平台 OpenWrite 发布
- 上一篇: 做体育最好的网站ui设计界面设计
- 下一篇: 做天猫网站要多少钱网站关键词怎么做效果好
相关文章
-
做体育最好的网站ui设计界面设计
做体育最好的网站ui设计界面设计
- 技术栈
- 2026年04月18日
-
做淘客的网站名称成都文化墙设计公司
做淘客的网站名称成都文化墙设计公司
- 技术栈
- 2026年04月18日
-
做淘宝详情页的网站学习网站开发心得体会
做淘宝详情页的网站学习网站开发心得体会
- 技术栈
- 2026年04月18日
-
做天猫网站要多少钱网站关键词怎么做效果好
做天猫网站要多少钱网站关键词怎么做效果好
- 技术栈
- 2026年04月18日
-
做添加剂的外贸网站有哪些网站增值业务
做添加剂的外贸网站有哪些网站增值业务
- 技术栈
- 2026年04月18日
-
做同城购物网站做的网站每年都要交费吗
做同城购物网站做的网站每年都要交费吗
- 技术栈
- 2026年04月18日

