8

我为用户登录和用户管理设置了 django 后端,以及我的整套模板,网站访问者使用这些模板来显示 html 文件。但是,我正在尝试向我的站点添加实时功能,并且我在 Node.Js 中找到了一个完美的库,它允许两个用户在文本框中键入内容,并让文本出现在他们的两个屏幕上。是否可以合并两个后端?

4

3 回答 3

16

为不同目的运行多个后端是绝对可能的(有时甚至非常有用)。然而,它会打开一些蠕虫,这取决于您的系统预期具有什么样的严格性,您的团队中有哪些人等:

  • 状态。您需要在不同的应用服务器之间共享会话状态。最简单的方法是以与框架无关的方式存储外部会话状态。我建议在键/值存储中使用 JSON 对象,您可能会从 JSON 模式中受益。
  • 域/路由。您需要您的登录 cookie 可用于两个应用服务器,这意味着由 Apache/Nginx 路由的单个域或通过 DNS 路由的单独子域。出于以下原因,我建议使用单独的子域
  • 网络套接字。我可能已经过时了,但据我所知,Apache 和 Nginx 都不支持 websockets 代理,这意味着如果你想使用它,你将牺牲使用 http 服务器作为应用程序代理的灵活性,而是直接通过子域。
  • 未指定的要求。监控、日志记录、错误通知、构建系统、测试、持续集成/部署、文档等都需要扩展以支持新型组件
  • 技能。您必须为管理更复杂的应用程序架构所需的技能集支付时间或金钱

所以,我的建议是非常仔细地考虑你是否需要这个。可能会涉及很多时间和思想。

更新:实际上有一些公司专门为现有网站添加实时功能。我不会说出任何名字,但是如果您在托管平台(例如 Heroku)的附加市场上寻找“实时”,那么您会找到它们。

更新 2:Nginx 现在支持 Websockets

于 2012-12-10T11:06:58.830 回答
3

你不能合并它们。您可以通过 Reddis 等队列系统将消息从 Django 发送到 Node.Js。

于 2012-12-10T08:27:01.487 回答
0

如果你真的想使用两个后端,你可以使用两个后端都支持的数据库。

虽然我不会推荐它。

于 2012-12-10T10:42:12.613 回答