【发布时间】:2017-01-30 03:12:11
【问题描述】:
假设我们有以下要求:(我们只有 1 个 master 和 1 个 slave)
用户打开第一页:输入用户名,然后按下提交按钮。请求转到应用服务器,然后将此用户名写入/更新到 Master DB 。现在,当我们从 Master 返回成功回调时,页面导航到第 2 页。但是我们必须在第 2 页上显示此用户名的详细信息(来自 Read/Slave DB),但假设 Master 没有将数据复制到 Slave。那么如何处理这种情况:
- 我们将检查 Slave 中是否有数据,然后我们可以从 Master 读取数据,但 Master 上的负载会再次增加。
- 我们将检查从属服务器中是否有数据,我们将一次又一次地等待我们访问从属服务器,但在这种情况下,用户将不得不等待加载 page2。
我的问题是我们可以使用哪些其他方法或设计解决方案来获取第 2 页上的数据而无需等待和增加负载。
【问题讨论】:
-
您希望有多少用户访问您的 Web 应用程序。如果不是数百万,我认为复制发生得很快,您可以选择等待从从属数据库读取。您使用什么协议在 db (和 which db btw)之间复制数据。除了存储用户信息之外,Master DB 还做了什么其他事情。因为如果您将所有读取请求都发送给从属机器,那么您最终可能会加载从属机器作为其处理添加新数据和读取的处理。相反,您想加载在两者之间分配您的请求吗?
标签: architecture scalability high-availability