构建可扩展的Java EE应用(二) - 编程入门网
此应用基于Java EE编写,运行在 Tomcat和Mysql上,但不同于我们实验室中测试的其他应用,它只是希望在20多台 便宜的PC Server上进行测试,其数据模型结构如下:
Figure 7: Users data partitions 这里比较特殊的地方子碍于不同的用户数据(例如profile、blog)可能会存 储在不同的数据库实例上,例如,用户 00001存储在服务器A上,而用户20001存 储在服务器C上,分库的规则以一张元信息的表的方式存储在专门的数据库上。当 部署在Tomcat的 Java EE应用希望获取或更新用户信息时,首先它会从这张元信 息的表中获取到需要去哪台服务器上获取这个用户,然后再连到实际的服务器上 去执行查询或更新操作。 用户数据分区和这种两步时的动作方式可以带来如下的一些好处: 扩展了写的带宽:对于这类应用而言,blogging、ranking和BBS将会使得写带 宽成为网站的主要瓶颈。分 布式的缓存对于数据库的写操作只能带来很小的提升 。采用数据分区的方式,可以并行的进行写,同样也就意味着提升了写的吞吐量 。要支持更多的注册用户,只需 要通过增加更多的数据库节点,然后修改元信息 表来匹配到新的服务器上。 高可用性:如果一台数据库服务器down了,那么只会有部分用户被影响,而其 他大部分的用户可以仍然正常使用; 同时也会带来一些缺点: 由于数据库节点可以动态的增加,这对于在Tomcat中的Java EE应用而言要使 用数据库连接池就比较难了; 由于操作用户的数据是两步式的,这也就意味着很难使用ORMapping的工具去 实现; 当要执行一个复杂的搜索或合并数据时,需要从多台数据库服务器上获取很多 不同的数据。 这个系统的架构师这么说:“我们已经知道这些缺点,并且准备好了应对它, 我们甚至准备好了应对当元信息表的服务器成为瓶颈的状况,如果出现那样的状 况我们将会把元信息表再次划分,并创建出一个更高级别的元信息表来指向众多 的二级元信息表服务器实例。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |