shardingsphere之sharding-proxy读写分离学习笔记shardingsphere之sharding-proxy读写分离学习笔记
引⾔
读写分离在业务中应该是⽐较常见的,当满⾜以下⼏点就可以考虑将数据进⾏读写分离,减轻数据库的压⼒和提⾼响应速度。
(1)业务对数据库是读多写少。
(2)单台服务器或者单个数据库的性能已经不能满⾜当前业务对数据库⼤量读取请求。
(3)数据量不是特别巨⼤,单表还没超过五百万⾏记录,还不需要分库分表。
重要提⽰
演⽰环境
怎么把视频放到iphone阿⾥云ECS服务器,CentOS Linux release 7.7.1908 (Core)
docker版本:Docker version 19.03.8, build afacb8b
本地系统:windows7
四级作文范文版本信息
spring-boot 2.1.6.RELEASE
mybatis-plus-generator 3.1.0
mybatis-plus-boot-starter 3.1.0
druid-spring-boot-starter 1.1.18
sharding-proxy 4.0.1
mysql 8.0.20
代码⽰例和参考
⽤于演⽰的代码和相关的参考链接已经放到⽂章的末尾。sql⽂件放置在sql⽂件夹,请求信息放置在postMan⽂件夹,导⼊postman执⾏即可。
读写分离简介
读写分离主要分为两步,⼀是设置数据库实现主从复制,⼆是在代码层⾯实现增删改操作到主数据库,读的操作到从数据库,提⾼数据库的响应能⼒。
主从复制
太多的理论知识就不在这⾥赘述了,可以参考,有兴趣的可以进⾏深⼊研究,选择适合⾃⼰的解决⽅案。
主从复制的原理和流程
徐凤年结局(1)Master主库将数据变更DataChanges记录 binlog⽇志中。
(2)Slave起⼀个I/O线程连接到Master,dump读取Master的binlog⽇志并写⼊到Slave的中继⽇志Relaylog中(3)Slave中的SQL线程读取中继⽇志Relaylog进⾏SQL回放执⾏操作,完成主从复制,保证主从最终⼀致性。
sharding-proxy简介
概念
太多的理论知识我就不赘述了,⿇烦⾃⼰到去看。
sharding-jdbc 和 sharding-proxy对⽐
特点
西红柿栽培配置好之后可作为独⽴的数据源使⽤,⼀个逻辑数据库代理着⼏个真实数据库,可以⽤客户端软件⽐如Navicat Premium 直接去连接和操作。很好的帮助我们处理读写分离的问题,基本不需要对现有的业务代码修改,减少时间成本。不是我不小心歌词
使⽤情况
基础环境的搭建
本⽂是基于阿⾥云ECS服务器上的docker搭建数据库的,使⽤docker安装会⽐传统的⽅式效率⾼很多。
下⾯会把详细的安装步骤和注意的地⽅⼀⼀列出来。这⾥演⽰的是⼀主三从,⼀个主库master,三个从库slave0,slave1,slave2。
⼩插曲
对于mysql的安装,⼀开始我是选择在windows7下⾯⽤docker安装的。在安装docker的时候出现⼀⼤堆问题,初始化也很⿇烦,搞了⼀个下午也没搞完。所以我转到阿⾥云上⾯安装。当然也可以在windows下使⽤解压的⽅式安装mysql,这个就⾃⾏⾕歌吧。
docker的安装
(1)卸载旧的docker,可选。
sudo yum remove docker \
docker-client \
日暮 山远docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
(2)安装yum⼯具类
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
(3)启⽤Docker源
sudo yum-config-manager \
--add-repo \
download.docker/linux/po
(4)安装Docker
sudo yum -y install docker-ce
(5)配置国内的Docker仓库,加快Docker镜像下载速度
vim /etc/docker/daemon.json
{
"registry-mirrors" : [
"registry.docker-cn"
]
}
(6)启动docker
sudo systemctl start docker
(7) 检查是否安装成功,如果出现正常的信息则表⽰安装成功。sudo docker info
安装mysql并配置主从复制拉取mysql镜像
(1)查看mysql镜像版本
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论