创建多个 front-ends 命中相同的数据源
Create multiple front-ends hitting same data source
我想使用同一个数据库创建和托管 4-5 个网站。网站之间的唯一区别是:
- 品牌(颜色和 header)
- 数据将按网站过滤(通过 sql 查询)和
- 每个站点都在一个单独的域中(但可以托管在同一台服务器上)
我的第一个想法是使用 API / Rest 模型并在自己的 sub-domain 中提供五个 front-ends。但是由于站点可以托管在同一台服务器上(我假设一个托管帐户启用多个 sub-domains),我想我可以简单地将所有站点与连接字符串连接到同一个数据库,避免使用 REST 的复杂性。
这可能吗?我这样做会 运行 导致数据库冲突吗?
如果以后想加一个手机客户端,那我还需要再建一个rest接口吗?
谢谢
此处正确的做法在很大程度上取决于您的具体用例、预期负载、首选 backend/edge 技术、未来计划等。
- 站点域和服务器 -
这里的要点是您可以在相同或不同的服务器上托管您的 domains/subdomains。您只需更新 DNS 以指向正确的 IP(更新子域的 A 记录)。
注意:如果这些站点都面向 public,那么我强烈建议使用 edge/proxy 服务器,甚至考虑使用负载平衡器,具体取决于预期的访问者数量(Nginx, or Apache Web Server)
- 解耦架构几乎总是首选 -
我肯定会有一个 API/REST 层来从站点抽象数据库。这确保您建立一个合同,任何客户端都可以通过该合同与后端交互,包括您的移动应用程序。您也不必在各种客户端之间复制特定于数据库的代码。如果您决定更改架构怎么办?甚至您的数据库解决方案?那么所有的客户都会崩溃,你的客户也会不高兴。 作为一个指导原则,想想:如果我改变了我的架构中的任何一个东西,那么有多少其他东西需要因此而改变?
在就可扩展性而言,这种架构还允许您在需要时轻松启动更多实例(数据库、REST 服务等)。
- 如何构建和部署 REST API?
回复:#2,设置简单的自定义 REST 服务运行 上 Node.js(并表示),这是一个 good tutorial。该示例还介绍了内存中 MongoDB 数据库的设置和集成。
- 数据库冲突?
如果您按照上述步骤操作,这应该是一个有争议的问题。如果默认值不够用,Node.js/express 和数据库会提供配置连接池的方法。同样,这将取决于您的需求 - 您期望有多少并发用户。
我想使用同一个数据库创建和托管 4-5 个网站。网站之间的唯一区别是:
- 品牌(颜色和 header)
- 数据将按网站过滤(通过 sql 查询)和
- 每个站点都在一个单独的域中(但可以托管在同一台服务器上)
我的第一个想法是使用 API / Rest 模型并在自己的 sub-domain 中提供五个 front-ends。但是由于站点可以托管在同一台服务器上(我假设一个托管帐户启用多个 sub-domains),我想我可以简单地将所有站点与连接字符串连接到同一个数据库,避免使用 REST 的复杂性。
这可能吗?我这样做会 运行 导致数据库冲突吗? 如果以后想加一个手机客户端,那我还需要再建一个rest接口吗?
谢谢
此处正确的做法在很大程度上取决于您的具体用例、预期负载、首选 backend/edge 技术、未来计划等。
- 站点域和服务器 -
这里的要点是您可以在相同或不同的服务器上托管您的 domains/subdomains。您只需更新 DNS 以指向正确的 IP(更新子域的 A 记录)。 注意:如果这些站点都面向 public,那么我强烈建议使用 edge/proxy 服务器,甚至考虑使用负载平衡器,具体取决于预期的访问者数量(Nginx, or Apache Web Server) - 解耦架构几乎总是首选 -
我肯定会有一个 API/REST 层来从站点抽象数据库。这确保您建立一个合同,任何客户端都可以通过该合同与后端交互,包括您的移动应用程序。您也不必在各种客户端之间复制特定于数据库的代码。如果您决定更改架构怎么办?甚至您的数据库解决方案?那么所有的客户都会崩溃,你的客户也会不高兴。 作为一个指导原则,想想:如果我改变了我的架构中的任何一个东西,那么有多少其他东西需要因此而改变?
在就可扩展性而言,这种架构还允许您在需要时轻松启动更多实例(数据库、REST 服务等)。 - 如何构建和部署 REST API?
回复:#2,设置简单的自定义 REST 服务运行 上 Node.js(并表示),这是一个 good tutorial。该示例还介绍了内存中 MongoDB 数据库的设置和集成。 - 数据库冲突?
如果您按照上述步骤操作,这应该是一个有争议的问题。如果默认值不够用,Node.js/express 和数据库会提供配置连接池的方法。同样,这将取决于您的需求 - 您期望有多少并发用户。