【发布时间】:2014-04-14 18:12:19
【问题描述】:
我有一个应用程序,每个用户都有自己的数据库。这有助于很好地水平扩展,因为很容易启动另一个数据库服务器。
我正在努力解决的部分是如何识别用户的数据库/帐户所附加到的数据库服务器。
以下是我想出的可能解决方案:
- 在其中一个数据库服务器上创建一个映射用户名 --> db 服务器的查找表。确保此查询已编入索引以消除任何性能问题。
优点:易于实施
缺点:仍然有 1 个故障点。如果持有用户名的数据库服务器 --> 数据库关系出现故障,则应用程序停止为所有用户工作
- 创建一个映射用户名的文本文件 --> 数据库名称
优点:很容易实现且速度很快。
缺点:在 Web 服务器之间保持同步存在问题。在读取文件时写入文件的并发问题。写作中的一个小错误,可能会导致一切崩溃
这样的最佳做法是什么?
【问题讨论】:
-
您可以在所有数据库服务器上使用选项 1 并进行主-主复制。