实现读写分离有3种方式:
(权限:在主库创建一个只写的用户,而从库创建一个只写的用户,让程序去连接不同的服务器可达到读写分离的效果。)
1.代码:在代码中根据select 、insert进行路由分类,这类方法也是目前生产环境下应用最广泛的。适用于简单系统。一般配合mysql用户权限设置
2.代理:mysql_proxy和amoeba,需要增加硬件的开支,一般新增独立服务器。适用于大型分布式项目。
读写分离架构也能够消除读写锁冲突从而提升数据库的读写性能。
使用读写分离架构需要注意:主从同步延迟和读写分配机制问题。
参考:
https://www.cnblogs.com/zezhou/p/11525081.html
https://blog.csdn.net/rzpy_qifengxiaoyue/article/details/108663411
MySQL主从复制延迟解决方案:https://blog.csdn.net/KIMTOU/article/details/125033199
- 分布式架构设计概要
- 技术管理
- 1.流程规范
- 2.精准效率
- 3.同步工具
- 代码审核
- 编程思想
- 控制反转和依赖注入
- public、private、protected
- MySQL
- MySQL安装
- MySQL常用
- MySQL主从配置
- 读写分离
- 分库分表
- 高可用
- MySQL集群
- MySQL优化
- MySQL慢查询优化
- 数据结构
- MySQL备份
- MySQL導出導入
- MSSQL
- 導出導入
- Redis
- Redis日常操作
- Redis安装
- Redis主从配置
- Redis哨兵
- 队列
- 分布式式锁
- Redis集群
- redis的缓存雪崩与缓存穿透
- Linux
- Linux基本操作
- Linux基础操作1
- Linux安装
- Linux安装Nginx
- Linux安装MySQL
- Linux安装PHP
- Linux安装Redis
- Linux安装Swoole
- Linux安装Elasticsearch
- Linux安装Mycat
- Linux优化
- 集群
- 服务器管理
- Nginx
- Nginx 首页外链接出现404问题
- Nginx常用命令行
- LNMP一键安装的404错误
- http和https站点设置
- Linux shell expect spawn
- Ubuntu环境
- 宝塔
- 定时任务
- Windows
- 生成OpenSSL证书
- Git
- Git基本操作
- Git练习
- Git上传到远程仓库,远程仓库更新到指定文件夹
- Git案例1
- Git案例2
- Git部署
- 远程连接
- 服务器原理
- 进程和线程
- 腾讯云
- 宝塔命令行
- 消息队列系统
- RabbitMQ
- RabbitMQ+Laravel
- Kafka
- Elasticsearch
- Laravel+Elasticsearch
- Elasticsearch Demo:ES搜索题目和内容
- 分布式
- PHP
- Laravel高级集成开发
- PHP技术栈
- LNMP
- LNMP+Laravel出现问题
- PHP+MySQL
- PHP连接MySQL
- PHP+Redis
- PHP连接Redis
- PHP+Redis简单操作
- Laravel+Redis
- Laravel+Swoole
- Swoole
- Swoole TCP案例
- Swoole HTTP案例
- Sswoole WebSocket案例
- Swoole发短信案例
- ThinkPHP
- Java技术栈
- 文档参考
- docker
- docker一般使用
- docker项目1
- docker+lnmp
- docker搭建wordpress
- Docker部署单体到微服务架构(Laravel)
- Docker部署单体到微服务架构(Spring Boot)
- docker部署vue项目
- Dockerfile
- 其他
- 笔记1
- 笔记2
- 开发速度
- 代码质量
- 踩过的坑
- 编辑器
- VSCode