严格来讲没有明确的分布式数据库的概念,有的只是业务中心的概念,既然牵扯到业务中心,那么就需要对于整个的项目之中的RPC技术的规划。
严格来讲没有明确的分布式数据库的概念,有的只是业务中心的概念,既然牵扯到业务中心,那么就需要对于整个的项目之中的RPC技术的规划。
如果按照传统的开发项目,肯定是要针对一个数据库实现的开发。
这种操作的最大特征在于:需要进行在一个服务器上实现所有的功能,假设你的项目之中有十个业务,可能有九个业务都是非常不繁忙,恨不得,三天才有一次操作。而另外一个业务非常繁忙。
如果说现在有十个业务,这十个业务都非常繁忙,那最终的情况就是整体的服务质量就会下降,就必须将这些业务的操作单独抽取出来,进行业务中心的搭建。
在使用RPC技术处理的时候就可以将业务端分离出来,而后通过WEB端实现业务的整合处理操作。
但是这个时候又会出现问题:你所有的业务可能均分到了十台主机和十台服务器上,这个时候只有一个WEB端,那就无法满足于当前的需求,所以在这样的状态下为了保证WEB端服务正常,就需要使用WEB集群。
在这样的设计下有可能依然无法满足于大规模的业务访问,这个时候就需要继续考虑某一个业务的集群访问。
这样一来,依然会出现一个严重的问题,多个数据库之中应该进行数据的同步处理,也有可能某一个数据库特别忙碌,需要将某一个数据进行继续拆分。
如果现在某一个数据库的访问量依然很大,那就必须考虑对数据库做水平的分库处理机制。让多台数据库实现同一类业务数据的存储操作。
同时,如果现在有一些访问频率很高的数据出现,也肯定不可能使用SQL数据库,应该使用缓存数据库来实现,而缓存数据库之中依然有可能继续进行集群的搭建处理。
这样的架构只适合进行传统的存在有逻辑关系数据库的存储操作,如果要进行数据采集处理,那么就无法使用此类设计,应该继续构建大数据分析系统,而后继续引用消息组件,进行缓冲操作。
更多专业知识,面试技巧就在面试一点通,持续更新中……
感谢浏览~
本内容来源于阿里云大学-Java面试技巧