ASF(Application Service Framework)基于SCA规范的框架第一期基本结束,整体上来说已经能够取得原想的第一步要求。第一期的总结和第二期的规划让我一度有些迷惘,因为作为框架设计来说,商业目标第一,客户需求第一,技术创新为后,现在要规划第二期,首先还是需要关注与业务组的需求,业务组的需求尚满足于第一期的框架成果,所以只能够在首架和老大的要求下规划第二期。正好中间参加了BEA的SOA年会,虽然没有很多实质性的解决方案学习,但是对我将来的工作有了一点灵感的激发,遂写了后面的第一期总结和第二期规划。
ASF(Application Service Framework)基于SCA规范的框架第一期基本结束,整体上来说已经能够取得原想的第一步要求。第一期的总结和第二期的规划让我一度有些迷惘,因为作为框架设计来说,商业目标第一,客户需求第一,技术创新为后,现在要规划第二期,首先还是需要关注与业务组的需求,业务组的需求尚满足于第一期的框架成果,所以只能够在首架和老大的要求下规划第二期。正好中间参加了BEA的SOA年会,虽然没有很多实质性的解决方案学习,但是对我将来的工作有了一点灵感的激发,遂写了后面的第一期总结和第二期规划。
随着大家对新新的Web2.0网站的关注,这类以用户为中心的网站对于性能要求十分高,因此正好参考了这些网站的架构设计,好好的学习和实践一下,其中Cache已经开始学习MemCached,同时了解了它的优点和缺点,后续需要做的就是根据当前平台的需求和场景,来订制使用策略和策略的实现。与此同时,这些网站的整体结构设计让我也产生了研究下去的兴趣,特别是在如何在用户数激升的时候,让框架可以扩展适应这种飞速增长,以前记得和自己部门的另外一个业务组也有过这样的交流,因为该业务组是和C2C业务相关,那么对于这方面的需求很大,讨论过关于DB的scale up 或者 scale out,但是都发觉存在了很多问题,但是参考了这些网站的成长历程,很多问题就迎刃而解了。不过一句话,实践出真知,现在学到的只是形,真正要实施还有很多细节需要去考虑和思索。
那么Shards能够带来哪些好处呢?在《An Unorthodox Approach to Database Design : The Coming of the Shard》一文中提到了这么四点:高可靠性(一台数据库服务器出现问题,其他依然能够正常使用)。更快的查询(数据量的减小可以极大的提高查询效率)。更多的写入带宽(因为数据分布在多台服务器上,网络带宽自然就增大了)。可以做更多的处理(数据库压力减小,自然对于应用服务器来说本身的响应时间能够减少,事务处理量就会增加)。那就我个人对于上述的一些优点来看,其实觉得有几点不能称之为优点了,首先高可靠性,如果一台数据库服务器失效,那么那台数据库服务器上的数据将会丢失,应用程序将会无法正常的返回结果,当然可以做备份,那么其实是否分散数据,都可以通过备份的数据库服务器来保证服务器正常,同时Shards可能需要更多的数据库服务器来保证应用的数据正常和完整。其他的几点优点都是有代价的,数据的物理隔离分布,如果需要对应用透明,那么就需要在DB或者持久化层做选择策略,同时选择策略的好坏也将直接影响应用的可靠性,性能以及可扩展性。
说说Shards如果要实施起来的几个问题,当然自己现在还没有去实施,所以这些问题只是在过去的Scale out 讨论方案中也提起过,同时经历了这段时间的接触也有一些新的想法。