返回信息流看到MySQL书上说可以通过按功能拆分来扩展应用容量。比如一个网站将论坛,新闻,贴吧的数据分别存储到三台数据库服务器上。那么在希望从三个数据库中取出数据展示到一个页面时,JAVA后台(比如在servlet中)的数据库操作要启动三个线程分别从三个库中读吗?如果不用多线程读的话,servlet中的数据库操作岂不就是串行的了(读完论坛再读新闻再读贴吧)?那么把数据分到三个服务器上的意义是不是就没了?
这是一条镜像帖。来源:北邮人论坛 / java / #57070同步于 2017/8/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
关于MySQL扩展的问题
sosayweall
2017/8/15镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
一般用连接池吧,处理请求的线程和数据库连接线程早就在那里了,对单个请求响应时间要求比较高的话可以做异步读多个数据库,不过一般来说串行影响不大,读数据库没有那么不堪,可以优先用 cache、sharding 优化
多谢楼上两位,是我理解的不够充分。按功能拆分更大的意义在于多个用户请求访问不同功能的数据时能把访问压力分散到多台数据库服务器上,我之前考虑的是单个用户请求要访问多个数据库的情况,如楼上所说,串行影响不大
其实你是想按业务量变化做横向扩容、缩容吧,存储层可以把各个业务的数据库分库,业务层可以用微服务,把不同的业务请求分开,那个不够就加机器
存储层横向扩容是个技术活,可以看看 tidb
【 在 sosayweall 的大作中提到: 】
: 好的~
嗯,我也是最近在看MySQL相关的书才产生这个问题的,并没有实际项目驱动。。业务层微服务这个概念之前没听过,不过听你说的感觉挺厉害的样子,回头好好了解下。谢谢哈~
【 在 SinceBelieve 的大作中提到: 】
: 其实你是想按业务量变化做横向扩容、缩容吧,存储层可以把各个业务的数据库分库,业务层可以用微服务,把不同的业务请求分开,那个不够就加机器
: 存储层横向扩容是个技术活,可以看看 tidb
: