锁定老帖子 主题:没有事务处理的日子(草译)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-04-06
最后修改:2010-07-03
本文由
外刊IT评论
组织翻译
Living Without Transactions
摘要
<!-- -->Martin Fowler (敏捷大师)发表了一篇blog,是关于放弃数据库事务管理,以依靠程序代码来管理事务的方法替代对数据事务管理的依赖.也许有时候这也是个正确的解决方案.<!-- --> <!-- -->在 Transactionless 这篇blog中,Martin Fowler 对eBay的架构师DanPritchett最近的一次关于为什么eBay的架构师并不十分依赖数据库事务处理的演讲发表了评论. ebay的数据的完整性是由应用层代码完成的. Fowler 指出.
Fowler不加思索的指出事务处理是一个非常有用的数据管理工具,而且指出:
根据Fowler's blog写的,在应用层里控制数据的完整性需要非常的小心,还需要许多额外的代码:
当开发人员观察放大企业应用程序时,经常会发现数据层是最终的瓶颈. 目前好像是出现了两种途径去提高数据库层: In-memory, distributed caches,such as Tangosol's Coherence and JBoss Cache, 和把大数据库分割成许多小的数据库,在这些数据库中横向的反数据集群. 在第一种方法中,缓存成了应用程序的主要持久数据目标了. 许多的缓存解决方案提供了他们自己的API,通过这些API,他们绕过了传统的企业数据管理接口,例如JDBC和J2EE事务管理. 非集群的数据库,在另一方面,需要应用程序管理多个数据库连接,很可能要依赖分布式事务管理来确保这些跨越数据库的操作的成功.分布式事务处理--特别是分布式事务处理的协调者,就成了又一个瓶颈和失败点,而且可测量性也有限. 就像Fowler的文章指出的,分布式数据库中利用应用程序协调跨越数据库的工作可以增加可测量性. 在你的应用中,你是如何避免让数据库成为一个(single point of failure??)个别的失败和可测量到的瓶颈的? 对Fowler的博客里描述的非事务处理类型的应用的你是如何考虑的? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-04-06
像银行转帐,可以简单的用事务来解决
不用的话,就得需要很多代码来保证一致性,恐怕数据库也需要额外的字段 到了ebay那种级数的应用,不管什么手段,能解决问题就好 要是大多数应用都这么处理,那就是跟自己过不去了 |
|
返回顶楼 | |
浏览 3139 次