我们计划使用 Amazon OpsWork 部署一个 Web 应用程序,我只是想与您核实一下,我们的架构是否可能存在任何设计缺陷。
我们有 4 个组件:
- 负载均衡器(最好是亚马逊)
- 基于 Node.js 的 Express
- MongoDB
- 弹性搜索
这是我们组件的通信图:
前面是一个负载均衡器,它将 http 请求分发到多个 Web 服务器。
Web 服务器是无状态的,因此可以在每次负载需要时进行克隆。所有 Web 服务器实例都是平等的。会话信息保存在 MongoDB 中。
在“后端”中,我们计划使用 MongoDB 和 ElasticSearch 的内置集群功能。因此,每个 Web 服务器实例只连接到一个 MongoDB 和 ElasticSearch 主实例。MongoDB 和 ElasticSearch 会相应地进行扩展。此外,ElasticSearch master 与 MongoDB master 对话以检索数据以构建索引。
我们如何看待它,设置这样一个系统最具挑战性的任务是使用 MongoDB 和 ElasticSearch 集群配置 OpsWorks。
提前谢谢了!