也许我只是期望“三层架构”提供的不仅仅是在源代码(see here)中明确分离职责 ......
我对这种可以安全地称之为“三层架构”的野兽的期望要高得多......所以,这里他们:
如果您要构建类似“三层架构”系统的东西,但这次使用这些,其他要求和约束:< / p>
<子> 注意:提到的“核心服务”是访问企业内各种外部系统的重量级组件。一个例子是与Active Directory或“股票市场自动收报机”的连接...... 子>
1。你会怎么做?
如果您现在没有答案,可以继续阅读并告诉我您对此的看法:
2。您如何看待这个“解决方案”?
答案 0 :(得分:1)
是大多数大型网站的方式。查看nosql数据库,Google的大型架构等。
<强> 1。这是我采取的一般方法。
我会为数据层使用memcached,nosql-cloud(couch-db或mongo-db)和企业级RDBMS系统(核心数据存储)的混合体。然后,我将在数据层的顶部编写服务层。 nosql数据库API是大规模并行的(看看couchdb及其ngingx服务层parallizer)。然后我提供“oldschool每个请求是一个网页”生成Web服务器,并直接访问新样式AJAX应用程序的服务层;这些都取决于服务层。
P.S。 RDBMS是这里的一个重要组件,它拥有memchached / nosql云中所有数据的权威副本。我会使用企业级RDBMS来进行数据中心到数据中心的复制。我不知道那些大男孩如何进行基于云的网站复制,如果他们将数据云做到数据云复制,我会感到害怕:P
有些观点:
<强> 2。您已经描述了Web 2.0服务器场的常规组件,因此没有评论:D
答案 1 :(得分:1)
我认为,在现实世界中,高可用性系统是使用故障转移实现的:例如,如果没有业务层,UI不能继续工作,而是如果业务层变为如果不可用,则UI会故障转移到使用业务层的备份实例。
除此之外,他们可能使用存储转发操作:例如邮件系统可能会存储一封邮件,如果无法立即发送,则会定期重新传输。