2011-04-22 32 views
1

我有一个网站的规模越来越大,对于不同的用户有不同的需求。到目前为止,一个应用程序已经足以满足所有用户的需求。在同一个数据库之上运行两个应用程序

现在,我们正在成长,我想对代码库中分离出来,所以我有一个应用程序,以服务为每个主要的使用情况。在这种情况下,当我说应用程序时,我特指Web应用程序。

我最初的想法是创建一个作为Web服务来促进每个应用程序的所有功能的主API应用程序。然而,当我进一步思考这个问题时,我认为使用HTTP作为本质上的数据层实际上会导致性能下降,并且我宁愿不抛出硬件$来解决这个问题。

在另一方面,我有非常强大的数据模型(使用ORM),我可以很容易地在复制到每个应用程序。只要我确信这个数据模型层对于每个应用程序都保持不变,我想我应该能够期望每个应用程序的数据一致性。

还有什么我应该关注的?我对这种方法的看法越多,我认为越好 - Apache通常会为每个客户端生成当前应用程序的一个实例,因此多个应用程序已经同时访问数据库。这种架构应该是相同的,只是调用数据库查询的代码会有所不同。

我还有什么其他的骗子吗?

根据记录,该技术堆栈是标准灯。

回答

2

我认为你是在正确的轨道上。

考虑任何有用的和复杂的网站,例如堆栈溢出。它在搜索问题的答案时有一个界面(应用程序)。在阅读一个问题的答案时还有另外一个问题,而另一个答案则是回答问题。它还有另一种适用范式。它具有将问题迁移到其他网站的复杂能力。

然而,他们都愉快地共存。数据模型是关键,但保留并保护规范化数据完整性的代码也是关键。

至于可扩展性,维基百科有一个类似的模式。通过使用四个(也许五个)数据库服务器来解决缩放问题,一个是主服务器,另一个是从服务器。任何d/b服务器都可以响应读取查询,但只有主机接受写入。当然,还有数百个运行“应用程序”的web服务器,并且还有数百个web缓存服务器来平衡性能。但是数据库体系结构反映了99%以上的所有页面点击都是读取的事实。

相关问题