29

不久前,我们发表了支付宝架构师冯大辉提出的问题,并邀请了腾讯的研发总监王速瑜先生做出回答,下面登出本次问答的节选,希望广大网友和读者们积极参与,提出你们想要问的问题。

WSY

王速瑜,腾讯 R&D研发总监,从事产品研发和管理工作,对互联网产品发展趋势、管理理念、技术架构有浓厚的兴趣和深入研究实践。目前主要关注敏捷开发、大规模应用架构、企业SAAS、Web2.0产品的相关技术和趋势。博客地址:http://blog.thinklet.net/mantian/

冯大辉:假设一家C2C 网站,DB中某表存储买卖双方交易的数据信息,对于一条交易来说,买卖双方数据具有一定程度的耦合性,比如卖家的状态更新对应买家的状态也会更新,对于一个中大规模的电子商务网站,架构师在设计中如何考虑数据分片的问题(假定该表随着数据的膨胀必须拆分)?

王速瑜:对于一个中大规模的电子商务网站,随着网站的不断发展,其相应的数据规模会不断膨胀。数据分片技术是使网站得于实现可扩展性的一种常用解决方案。对于C2C类型的网站,由于交易记录不容易进行水平的数据分割,因此对于这样的应用处理要在进行细分:

  1. 买卖双方交易的信息,具备较高的时效性,即交易全部完成后就不会再有更新,因此这部分数据可以与正在交易中的数据区分开来,并可以单独分表,定时归纳。具体的做法可以采用水平分割的数据分片技术,比如可以根据用户号码段范围进行切片,把不同的群体划分到不同的 DB 上,这样可以很好的进行横向水平扩展(Scale Out)。它可以很好的突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。
  2. 对于正在交易中的数据,主要根据时间进行分表。如果分的更细,则可以分三个表,但是这样在事务保证方面则要复杂很多,不建议这样做

冯大辉:技术团队在开发过程中是否进行集成测试? 进行与否的理由各是什么? 对于集成测试你是否有其他补充? 阅读全文 »

标签:
阅读:31,423 次
preload preload preload
京ICP备06065162