分库分表篇-2.3 springBoot 集成Mycat(1.6)


前言

在springboot 项目中我们应该如何集成mycat 然后让其帮助我们进行数据的分库和分表处理呢。


一、springBoot 集成Mycat(1.6) 步骤:

因为mycat 是一个数据库的代理中间件,同spring-boot 整合 mybatis-plus 相同,只是将数据源改为 mycat 地址后,所有之前直接发送sql 到db 的sql 现在回直接发送到mycat 中间件,然后由mycat 复杂把sql 根据分片规则转发到不同的db 数据库进行执行;

搭建过程可以参考,这里不在累述:Idea+maven+spring-cloud项目搭建系列–4整合mybatis-plus

搭建完成之后在 application.yml 中将数据连接更改为mycat 即可:
在这里插入图片描述

  • 192.168.75.131:8066 为mycat 的连接地址;

二、query_cache_size unknown 处理:

搭建好项目后在程序里执行sql 会提示 query_cache_size unknown ,它的原因为:
mycat1.6 在拦截sql 时 会在sql 上增加 query_cache_size 参数,但是 改参数在MySQL从版本5.7.20开始,将query_cache_size功能标记为“deprecated(已弃用)”,并建议不再使用。然后,在MySQL 8.0版本中,彻底移除了query_cache相关的功能和参数,包括query_cache_size。

  • 下载 mycat1.6 源码,找到 io.mycat.server.handler.SelectHandler 在100行修改代码,使用: SelectVariables.execute(c,stmt);源码地址:https://github.com/MyCATApache/Mycat-Server
    在这里插入图片描述
  • 然后编译成为class 文件,考虑到git 可能打开较慢这里将已经修改后的SelectHandler.class 放到网盘一份;链接: https://pan.baidu.com/s/1gVrylKfFY6oDkKi76A7uBg?pwd=fabc 提取码: fabc
  • 将mycat 容器内对应的jar 拷贝到宿主机上后,替换Mycat-server-1.6.7.6-release.jar 的改class 文件 然后拷贝改jar 包替换容器的jar
  • 重启mycat

总结:

springBoot 集成mycat 只需要将之前连接db 的数据源修改为 mycat 即可,其它都不用修改;因为mycat1.6 版本使用了query_cache_size 参数,所以将mycat 服务端的对应jar 进行替换;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值