02-项目实现读写分离
2023-03-31 10:58:45 时间
三、项目实现读写分离
实现方式跟同一个目录下的
01-读写分离测试案例
基本一致,只不过是将数据库替换成了项目使用的数据库
- 同时还有非常重要的一点,ShardingSphere-JDBC的作用不止是读写分离,更重要的是其能通过配置文件配置指定算法,可以自动化的完成对数据库进行分库分表操作,且不需要更改任何代码
- 关于分库分表操作,因为本次项目案例数据量较小,暂不使用。感兴趣的朋友可以参考后续新闻头条项目练习的相关博客
3.1、数据库环境准备
- 导入项目中的数据库即可
- 在个人项目中使用可视化软件,将相关表进行一个导出,然后再对虚拟机中的数据库进行导入
- 因为操作比较简单,具体过程这里就不演示了
3.2、读写分离配置
跟
01-读写分离案例
基本没区别,更换数据库名称即可
-
①、引入Sharding-JDBC的相关依赖
-
<dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <version>4.0.0-RC1</version> </dependency>
-
-
②、配置数据源
-
#spring: # datasource: # driver-class-name: com.mysql.jdbc.Driver # url: jdbc:mysql://192.168.222.135:3306/tb_user?useSSL=false&characterEncoding=UTF-8 # username: root # password: root spring: shardingsphere: datasource: names: master,slave # 主数据源 master: type: com.alibaba.druid.pool.DruidDataSource dirver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://192.168.200.200:3306/reggie?useSSL=false&characterEncoding=UTF-8 username: root password: root #从数据源 slave: type: com.alibaba.druid.pool.DruidDataSource dirver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://192.168.200.201:3306/reggie?useSSL=false&characterEncoding=UTF-8 username: root password: root masterslave: # 读写分离配置 load-balance-algorithm-type: round_robin # 轮询负载均衡 # 最终的数据源名称 name: dataSource # 主数据库的名称 master-data-source-name: master slave-data-source-names: slave props: sql: show: true # 开启SQL显示,默认为false main: # 该配置项的目的,就是如果当前项目中存在同名的bean,后定义的bean会覆盖先定义的。 # 如果不配置该项,项目启动之后会报错 allow-bean-definition-overriding: true mybatis: type-aliases-package: com.coolman.model # configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true mapper-locations: - classpath:mappers/*.xml server: port: 8081
-
3.3、功能测试
运行项目,执行测试
- 配置完毕后,启动项目进行测试,直接访问系统管理后台的界面,然后执行相关业务操作,看控制台的日志信息即可
- 查询操作192.168.200.201:3306
- 更新操作192.168.200.200:3306
- 插入操作
- 删除操作
相关文章
- Android Content provider 组件
- 利用宇宙的能力来处理数据!「物理网络」远胜深度神经网络
- 世界首台常温量子计算机启用!无需绝对零度,主核竟然「镶钻」
- jupyter notebook安装部署及实战组合漏斗图绘制
- 找不到中文语音预训练模型?中文版 Wav2vec 2.0和HuBERT来了
- 让后端开发写个 API 文档就有那么难吗?
- NLP模型读不懂人话?微软AdaTest挑错效率高五倍
- CV未来在这68张图上?Google Brain深扒ImageNet:顶级模型全都预测失败
- 通用、可解释的AI计算硬件设计将是EDA的下一项革命性技术
- 无差错量子计算机或成现实
- 国产化瀚高数据库数据迁移文档:oracle11g数据库转瀚高8.6数据库实例演示
- Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理
- Oracle 数据库修改配置文件sga_target参数的值,sga_target值太小导致数据库服务起不来问题解决,调大sga_target参数方法
- Oracle 数据库设置最大进程数参数方法,oracle最大进程数满了处理方法,sysdba管理员登录报“maximum number of processes (150) exceeded“问题解决
- Oracle 数据库sql语句修改表字段的字段类型和长度
- 网络安全攻防演练中不能忽视的API风险
- Oracle 数据库sql语句查看字符集,PG数据库查询字符集方法
- Oracle 数据库SQL语句查询oracle数据库表主键,查看oracle指定表的表结构实例演示
- Oracle 数据库查看具有sysdba系统权限用户,设置、重置sys用户密码
- 国产化DM达梦数据库 - 用户状态查询、锁定与解锁,“登录失败次数超过限制”问题解决