突破Java面试(48)-设计可动态扩容缩的分库分表
0 Github
1 面试题
设计可动态扩容的分库分表
2 考点分析
- 选一个数据库中间件,然后深入之
- 设计分库分表的方案,要分成多少个库,每个库分成多少个表
- 基于已选的数据库中间件,以及在测试环境建立好的分库分表,能否正常执行分库分表的读写
- 完成单库单表到分库分表的迁移(使用上一文提到的双写方案)
- 线上系统,开始基于分库分表对外服务
突然! 扩容了,扩容成6个库,每个库需要12个表,你怎么来增加更多库和表呢?
这个你必须面对的事,就是当你已经弄好分库分表方案,测试也通过了,数据能均匀分布到各个库和表里去,而且接着你还通过双写方案上了系统,已经直接基于分库分表方案在搞了。
需求来了~现在这些库和表又支撑不住了,要继续扩容,咋办?
这个可能就是每个库的容量又快满了,或者表数据量又太大了,也可能每个库的写并发太高了,得继续扩容!
3 停机扩容(不推荐)
这就跟停
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
突破Java面试(46)-分库分表
0 Github 1 面试题 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的? 2 分析 其实这块肯定是扯到高并发了,因为分库分表一定是为了支撑高并发、数据量大两个问题的。而且现在说实话,尤其是互联网类的公司面试,基本上都会来这么一下,分库分表如此普遍的技术问题,不问实在是不行,而如果你不知道那也实在是说不过去! 3 业务分析 说白了,分库分表是两回事儿,大家可别搞混了,可能是光分库不分表,也可能是光分表不分库,都有可能。我先给大家抛出来一个场景。 业务发展迅猛,注册用户数达到了2000万!每天活跃用户数100万!每天单表数据量10万条!高峰期每秒最大请求达到1000!感觉压力已经有点大了,为啥呢?因为每天多10
- 下一篇
突破Java面试(50)-MySQL读写分离及主从同步延时解决方案
0 Github 1 面试题 有没有做过MySQL读写分离 如何实现MySQL的读写分离 主从复制原理 如何解决MySQL主从同步的延时问题 准备好面对这炮轰式面试了吗? 2 考点分析 高并发阶段,肯定需要做读写分离. 实际上大部分互联网公司/网站/APP,都是读多写少 针对现状,写一个主库,挂着多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗? 3 MySQL读写分离的实现 基于主从复制架构 搞一个主库,挂多个从库,然后就单单只是写主库,接着主库会自动将数据同步到从库 4 MySQL主从复制的原理 为什么MySQL要读写分离? 主库将变更写binlog日志,然后从库连接到主库后,从库有一个I/O线程,将主库的binlog日志拷贝到本地,写入一个中继日志 接着从库中有一个SQL线程会从中继日志读取binlog,然后执行binlog日志中的内容 即在
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Mario游戏-低调大师作品
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8