开发者学堂课程【Java面试疑难点串讲2:分布式数据库】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/25
分布式数据库
严格来讲没有明确的所谓的分布式数据库的概念
有的只是业务中心的概念,既然牵扯到了业务中心,那么就需要对于整个的项目之中的RPC技术的规划。
如果按照传统的开发项目,肯定是要针对于一个数据库实现的开发。
种操作的最大特征在于:需要进行在一个服务器上实现所有的功能。
如果说现在项目之中假设有十个业务,现在可能有九个业务都是非常不繁忙,三天才有一次操作。
而另外一个业务非常的繁忙。如果说现在有十个业务,这十个业务都非常繁忙,最终的情况就是整体的服务质量就会下降,那么就必须将这些业务的操作单独抽取出来,进行业务中心的搭建。
在使用RPC技术处理的时候就可以将业务端分离出来,而后通过WEB端实现业务的整合处理操作。
但是这个时候又会出现了问题:你所有的业务可能均分到了十台主机,和十台服务器上。
那么这个时候只有一个WBE端,那么自然无法满足于当前的需求,所以在这样的状态下为了保证WEB端服务正常,就需要使用WBE集群。
但是在这样的设计下有可能依然无法满足于你大规模的业务访问。那么这个时候就需要继续考虑某一个业务的集群访问。
但是这样一来依然会出现一个严重的问题,多个数据库之中应该进行数据的同步处理,也有可能某个数据库特别忙碌需要将某一个数据库进行继续拆分。
如果现在某一个数据库的访问量依然很大,这样的话就必须去考虑对数据库做水平的分库处理机制,让多台数据库去实现同一类业务数据的存储操作。.
同时如果现在有一些非常访问频率很高的数据出现,也肯定不可能去使用SQL数据库,应该去使用缓存数据库来实现,而缓存的数据库之中依然有可能继续进行集群的搭建处理。
这样的架构只适合于进行传统的存在有逻辑关系数据库的存储操作,而如果要是进行一些数据采集处理,那么肯定无法使用此类的设计,还应该继续构建大数据分析系统,而后继续去引用消息组件