网站模块如何添加,吉林长春建设工程信息网站,国外浏览器,淘宝客网站名1、能够理解读写分离的目的#xff1b;
2、能够描述读写分离的常见实现方式#xff1b;
3、能够通过项目框架配置文件实现读写分离#xff1b;
4、能够通过中间件实现读写分离#xff1b; 业务背景描述#xff1a; 时间#xff1a;2014.6.-2015.9 发布产品类型#x…
1、能够理解读写分离的目的
2、能够描述读写分离的常见实现方式
3、能够通过项目框架配置文件实现读写分离
4、能够通过中间件实现读写分离 业务背景描述 时间2014.6.-2015.9 发布产品类型互联网动态站点 商城 用户数量 10000-12000用户量猛增 PV 100000-50000024小时访问次数总和 QPS 50-100*每秒访问次数 DAU 2000每日活跃⽤户数 之前业务中是单台MySQL提供服务使用多台MySQL数据库服务器降低单台压力实现集群架构的稳定性和高可用性数据库的一致性和完整性 replication通过业务比对和分析发现随着活跃用户数增多读取数据查数据的请求变多故注重解决数据读取的压力。 模拟运维设计方案 根据以上业务需求在之前业务架构的基础上实现数据的读写分离。 数据库中间件代理服务器 MySQL的读写分离介绍
1、读写分离的目的
实际是数据库负载均衡的方式。
当数据库请求增多的时候单例数据库不能满足业务的需求。需要进行数据库实例的扩容。多台数据库同时响应请求也就是说对数据库的请求进行负载均衡。
但是由于数据库服务的特殊原因数据库扩容基本要求数据的一致性和完整性。所以要保证多台数据库实例的一致性和完整性以MySQL为例来说官方提供了 主从复制机制。
读写分离
数据库的负载均衡不同于其他服务的负载均衡数据要求一致性。基于主从复制的基础上常见的数据库负载均衡使用的是读写分离方式。写入主数据库读取到从数据库。可以认为读写分离是一种特殊的负载均衡方式。
可能出现的问题是刚写的数据读不到实际业务中读写分离存在的一个问题不够实时性。 对于要求实时性高的业务
1缓存读的时候读缓存写主库读缓存
2可以读主
3添加完数据之后有一个跳转的时间5s这5s可以进行主从复制。数据正在审核中。
还要业务代码实现。降低服务器压力。 2、读写分离常见的实现方式
①业务代码的读写分离
需要在业务代码中判断数据操作是读还是写读连接从数据服务器操作写连接主数据库服务器操作
以当前LNMP为例需要通过PHP代码实现读写分离
②中间件代理方式的读写分离
在业务代码中数据库的操作不直接连接数据库而是先请求到中间件服务器代理
由代理服务器判断是读操作去从数据服务器写操作去主数据服务器 现在比较流行还是MyCat。 但是目前官网出现上不去的情况。不知道是怎么回事。
proxysql 是www.proxysql.com网站。 可以看看这个。
kingshared这个也可以试下。要多读这方面的内容。 那么如何进行选择呢
1业务实现读写分离操作方便成本低当前的开发框架基本支持读写分离。如果100台服务器呢
2中间件代理服务器除了能够实现读写分离还可以作为数据库集群的管理平台。
后面有多少服务器都不管。平滑升级。还起到监控的作用。 常见的代理服务器都属于中间件。