网友最喜欢的十大软件架构和可伸缩性设计
My 10 favorite links on Software architecture, scalability and design
http://www.keksrolle.de/index.php?/archives/140-My-10-favorite-links-on-Software-architecture,-scalability-and-design.html
1. Force.com’s Multi-Tenant Architecture(对租户架构):
Force.com是一个优秀的按需应用开发平台使用,支持数以万计的组织。个别企业和商业软件作为服务( SaaS )供应商信任的平台,以提供稳定,可靠,互联网规模应用。为了满足需求,其极端庞大的用户人口, Force.com的基金会是一个元数据驱动的软件架构,使多租户应用。其白皮书阐述了专利技术,使Force.com平台,快速,可扩展和安全的任何类型的应用程序。
http://wiki.developerforce.com/index.php/Multi_Tenant_Architecture
视频讲解英文:
http://www.infoq.com/presentations/SalesForce-Multi-Tenant-Architecture-Craig-Weissman
2.Dan Pritchett on Architecture at eBay (Video)
其中谈到了 EBay .com doesn't use transactions EBAY不使用事务。划分数据库,区分重要的和不重要的,ebay是倡导到处异步的,事务和异步有矛盾之处,具体谈话见(有文字):
http://www.infoq.com/interviews/dan-pritchett-ebay-architecture
3.Orbitz.com Architecture with Brian Zimmer
一开始他们也使用big thread pool来处理高并发,不成功后,然后转移到使用Java NIO实现异步http。他们的request-response relationship a和 concurrency relationship并没有建立在Java的线程上(传统的J2EE机制),见文字谈话:
http://www.infoq.com/interviews/Architecture-Brian-Zimmer
4. Scalability Principles可伸缩性原理
首先是减少处理时间: Collocation(搭配即用即取) Caching Pooling Parallelization Partitioning Remoting
第二点是Partition,正如ebay倡导Partition Everything,不要把所有数据放在一个共享数据库中,可以使用类似Restful方式,从客户端开始进行应用状态分区。
第三点Scalability is about concurrency, 伸缩性是有关并发的,如果你需要一个锁或事务(e.g. local objects, database objects, etc), 请尽可能以更少时间处理,If you do need to hold locks (e.g. local objects, database objects, etc), try to hold them for as little time as possible.
其他见文章:
http://www.infoq.com/articles/scalability-principles
5.An Unorthodox Approach to Database Design : The Coming of the Shard
谈论了如何进行数据库的性能和伸缩性提高。
http://highscalability.com/unorthodox-approach-database-design-coming-shard
6.Domain Driven Design and Development In Practice领域驱动设计开发和实践
从建模 项目管理 代码实现,框架 等等各个方面论述了DDD在实践中应用。本站有大量Evans DDD讨论。
http://www.infoq.com/articles/ddd-in-practice
中文:
http://www.infoq.com/cn/articles/ddd-in-practice
本站讨论:
http://www.jdon.com/article/35600.html
[该贴被admin于2009-07-31 14:27修改过]