【发布时间】:2016-10-08 17:08:25
【问题描述】:
在进一步开发此设计之前,我正在尝试弄清楚我当前的方法是否会导致我在未来遇到性能问题,以及是否有更好的方法来做到这一点。如果我首先提供一些关于设计的背景信息,我认为这是最有意义的:
当前设计
我目前的环境设计有两个独立的服务器,我们称它们为前端和后端。
-
前端
此服务器向全世界开放。客户访问此网站以查看我们的产品、进行购买,并且很快就能查看他们的帐户相关信息。
-
后台
此服务器是所有信息都保存在数据库中的地方。
通讯
前端当前需要访问后端的唯一方法是用户使用他们的许可证进行身份验证并下载我们的产品。为此,前端调用 PHP 脚本,该脚本通过 curl_exec 向后端服务器发送 JSON 请求。来自后端的响应告诉前端如何处理该下载请求(例如许可证无效)。
推理
这种设计的原因是为了避免将后端细节暴露给用户。在客户端,用户看到的只是一个发送到前端服务器的请求。如果前端服务器遭到入侵,任何阅读前端如何构建的人都无法访问后端数据库,除非他们确切知道要发送到后端 API 的参数。即使这样,它也只能访问非常少的信息子集,具体取决于 API 公开的内容。
问题
这种跨服务器通信现在唯一发生的情况是用户尝试使用他们的许可详细信息下载我们的产品。相对来说,两台服务器之间通过这个API的流量比较低。
我担心的是我想构建一个用户“控制面板”。从这里,他们可以使用他们的许可证/帐户登录,他们可以查看他们的活动许可证,访问他们以前订单的详细信息等。这已经意味着所有这些信息只能通过后端获得,所以我需要通过 API 公开它们——这很好。这里的问题是用户通过控制面板发出的每个请求(即使只是刷新页面)都会在两个服务器之间建立大量流量。
问题
从这里开发人员的经验来看,这种通信设计是否可扩展?我担心我正在围绕瓶颈进行构建,这只会导致用户界面缓慢,因为前端最终会等待大量通过隧道传送到后端的请求。
你的想法是什么?有没有人遇到过类似的挑战?你是如何克服这个挑战的?实现这种要求的最佳实践是什么?我希望这个问题不会让人觉得太含糊。
【问题讨论】:
标签: php ajax database rest architecture