springboot redis读写分离,springboot mybatis读写分离

  springboot redis读写分离,springboot mybatis读写分离

  

目录

前言1.项目引入依赖2.yml配置3.启动4.测试5.中间所遇到的问题

 

  

前言

根据公司业务需求,项目需要读写分离,所以记录下读写分离的过程。

 

  分为两个部分:

  1.项目的读写分离。

  2.mysql数据库的主从复制。

  本篇使用的依赖包为分片-jdbc-spring-boot-starter,也有考虑直接用动态-数据源-弹簧-启动-启动器,但是需要在程序中显式的声明所指定的数据源,并且在从库=2 的时候需要自己写算法进行读库的选择。而分片-jdbc支持读库的负载均衡策略,分片会根据语句的关键字来決定是读操作还是写操作

  插入选择主库

  挑选选择从库2(由于设置的了轮询,所以下一次就是从库1)

  

1.项目引入依赖

依赖性groupIdorg.apache.shardingsphere/groupId artifactId sharding-JDBC-spring-boot-starter/artifactId版本4 .0 .0-RC1/版本/依赖性

 

  

2.yml配置

共有三台机器,

 

  主库一台(127.0.0.1)

  从库两台(192.168.1.5 192.168.1.6)

  spring :分片球体: props : SQL : show :假分片: default-data-source-name : master master slave : name : ms master-data-source-name : master-slave-data-source-name : slave 1、slave2 #配置奴隶节点的负载均衡均衡策略,采用轮询机制负载均衡-算法-类型: round _ robin数据源:名称:主机、从机1、从机2主机:类型: com。阿里巴巴。德鲁伊。游泳池。德鲁伊数据源驱动-类名: com。MySQL。CJ。JDBC。驱动URL : JDBC : MySQL 3360//127。0 .0 .1:33306/life _ account _ dbuse unicode=true character encoding=utf-8 use SSL=false server时区=亚洲/上海用户名: root密码: root maxpoolsize : 100 minpoolsize : 5 slave 1: type : com。阿里巴巴。德鲁伊。游泳池。德鲁伊数据源驱动-类名: com。MySQL。CJ。JDBC。驱动程序URL : JDBC : my SQL : use unicode=true字符编码=utf-8 usessl=false服务器时区=亚洲/上海用户名:测试密码: Houxuyang123!@ # maxpoolsize : 100 minpoolsize : 5 slave 2: type : com。阿里巴巴。德鲁伊。游泳池。德鲁伊数据源驱动-类名: com。MySQL。CJ。JDBC。驱动程序URL : JDBC : MySQL 3360//192。168 .1 .63:33306/life _ account _ db?使用unicode=true字符编码=utf-8 usessl=false服务器时区=亚洲/上海用户名:测试密码: Houxuyang123!@ # maxpoolsize : 100 minpoolsize : 5

  

3.启动

 

  

4.测试

第一次读数据(从库1)

 

  第二次读数据(从库2)

  主库写

  项目读写分离基本实现。

  

5.中间所遇到的问题

mysql查询问题

 

  选择列表的表达式#1不在分组依据子句中,并且包含非聚合列生活_账户_数据库。ACC _ order。序列号,该列在函数上不依赖于分组依据子句中的列;这与sql_mode=only_full_group_by不兼容

  原因:

  没有遵循原则的结构化查询语言会被认为是不合法的结构化查询语言

  1 .排序依据后面的列必须是在挑选后面存在的

  2 .选择、拥有或以.排序后面存在的非聚合列必须全部在分组依据中存在

  解决方法:

  修改配置文件:vim /etc/my.cnf

  添加:sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

  重启mysql:systemctl重启服务器

  :wq

  到此这篇关于跳羚详解如何实现读写分离的文章就介绍到这了,更多相关跳羚读写分离内容请搜索盛行信息技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行它!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: