【发布时间】:2014-02-27 11:54:53
【问题描述】:
目前我正在开发一个向最终用户公开的门户。该门户是使用 Python 2.7、Django 1.6 和 MySQL 开发的。
现在我们想将此门户公开为移动应用。但是当前的设计不支持这一点,因为模板、视图和数据库彼此紧密耦合。所以我们决定重新设计整个门户。经过一番研究,我发现以下内容:
- 客户端:AngularJS 用于所有客户端操作,例如显示数据和使用 ajax 获取数据。
- 服务器端:Rest API 暴露给 AngularJS。这个 Rest API 可以使用 Tastypie 或 Django Rest Framework 开发(还没有决定)。 Rest API 将通过 Django 公开。
我有几个问题:
- 你们对建筑有什么看法?这是一个好还是坏的设计?如何改进?
- 在架构中添加以上层后,门户的性能会下降吗?
- 在上述架构中,是否应该使用 2 台服务器来运行它(比如一台用于客户端,另一台用于服务 API)或一台服务器就足够了。目前 Heroku 用于部署。
目前门户网站每天的点击量达到 1 万次,预计 6 个月后将达到每天 10 万次。如果需要,我们很乐意提供更多信息。
【问题讨论】:
-
node.js 和这里有什么关系? API 由 Django 提供服务,另一台服务器会做什么?
-
是的,如果你使用的是 Django,那么你就不需要使用 node.js 并且只是为了客户端性能,你可以实现 KnockoutJS 或 AngularJS。
-
@DanielRoseman 和 CrazyGeek:- 我的想法是为客户端和服务器使用 2 个不同的服务器。这样它们就可以部署在不同的服务器上。这可能是一个坏主意,但正在寻找您对此的意见。我不适合编写 node.js,但将其替换为一些可用于客户端的 Web 服务器。编辑了我的问题。
-
但是客户端只是静态模板,不是吗?除了静态服务器之外,您不需要任何东西 - nginx 会做,但可能会为您的 Django 东西提供服务。
-
@DanielRoseman 是的,你是对的。我更想知道使用 2 台服务器是否会对性能有所帮助?你对我的架构有什么看法......它很好还是需要一些改进?
标签: python django angularjs heroku architecture