- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我知道这个问题之前已经发布过,但没有得到彻底的回答。另外我认为它仍然取决于问题参数。假设您的 SaaS 服务有很多客户,但每个客户的数据量相对较少,那么拥有一个数据库可能是有意义的。
如果您的客户长期不在数千个范围内(例如,在非常好的情况下为 100 个)并且从 5 到 6 个开始,但您每个客户有大量数据 这次(例如,聚合和处理大量数据的商业智能服务)。给你一个提示,最初每个客户需要处理 25-50GB 的数据(分析和其他东西),作为开始,然后每年每个客户增加大约 10GB。
如果您沿着单一数据库的路径前进,那么您将数据标记为具有特定字段(当然是索引)的客户,然后依赖于复制和分片 系统,由于 mongo,它非常简单。我假设(尚未测试,如果您有这种情况,请分享一些见解)在针对索引字段的分片集合中,查询查找时间应该很快。但是,假设您现在添加另一个客户,另外 50 GB(分布在 8 - 10 个集合中,因此有数百万个项目/集合)。您要么必须:1)删除索引并重建它们(我想那是最糟糕的因为系统变得几乎无法使用)2)不要删除和插入索引(这将永远需要),系统将响应3)我会认为在副本集中取下一个节点,删除索引,更新新客户,带回索引然后让它加入副本集以便它们可以开始同步。
另一方面,如果您每个客户一个数据库,添加或删除可以相对快速地完成,因为系统实际上隔离了它的客户,行仍然在数百万的范围内,但是不接近十亿,这很好而且查找时间显然很快。无论您在这种情况下做什么,在实现方面都更加容易和快捷,因为与单个数据库相比,您将始终使用相对较小的数字。然而,当涉及到维护(复制和分片,因为您将不断为每个客户添加更多数据)时,它肯定会成为一个摩擦另外,在这种情况下,我可能会假设您必须在单独的机器/实例中物理隔离数据库,因为打开文件数量的操作系统限制,当然,由于多个数据库中的多个同时连接,会有额外的开销。
如果我遗漏了什么,请说明,但我最想听听其他对此的意见......
谢谢
最佳答案
如果您停留在数百个客户中,我建议每个客户使用 DB,如果您期望有更多的客户,我建议使用每个客户的集合。 (有一些每个数据库的开销,您不希望为数千个数据库招致这些开销。)
请注意您的想法,“我会认为在副本集中取下一个节点,删除索引,更新新客户,带回索引,然后让它加入副本集,以便它们可以开始同步。”将不工作,因为在副本集中只有主节点可以写入。
关于Mongodb SaaS 单数据库与多数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13469522/
我正在 Linux 服务器上的共享主机上使用 PHP/HTML 构建 SAAS 产品,但我被困在域名部分。 目标 我将在 app.mysaas.com 上托管我的 SAAS 应用程序 我的客户将他们的
我想知道 SaaS 和 API 有什么区别。我觉得它在某种程度上是一样的。假设我正在构建 Rails 或 Flask api,我可以说我正在构建 Rails 或 Flask SaaS? saas:软件
我正在开发 SaaS(软件即服务)Web 应用程序,并且正在为单独的帐户使用子域。 我应该阻止用户使用哪些子域。 我目前拥有的是...管理员、管理员、博客、支持和帮助。我记得在 Quora 上看到过一
我们通过每月订阅销售软件即服务,我想弄清楚我们是否可以通过 Schema.org 的规范提供元数据。 我一直在考虑products ,但它似乎不支持订阅费用。 对于产品,谷歌似乎考虑到了电子商务实物类
我希望为我的 SAAS 互联网应用程序的用户提供一个状态仪表板,类似于谷歌和亚马逊提供的状态仪表板。 有谁知道支持这种接口(interface)的现成的第 3 方托管服务? 谷歌示例: http://
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 6年前关闭。 Improve this questi
我开发了许多部门客户端-服务器应用程序,现在准备开始将其中一个应用程序迁移到 SaaS 模型。我做过一些基本的 Web 开发,但在 SaaS 架构方面我还是个新手。 当我尝试设计架构时,首先想到的问题
我在一家 SaaS 公司工作,该公司每六周向我们的客户发布新功能和错误修复。当我们编写代码更改时,它们在到达生产服务器之前会经过不同的步骤(如状态机)。根据更改是在常规开发周期中完成还是作为紧急修复完
我正在构建一个基于 SaaS 的 Web 应用程序,用户可以使用他们自己的域连接到该应用程序并将他们的公司品牌应用于该应用程序。 如何根据访问的域自定义我的应用程序的登录页面。没有用于识别客户身份的登
我想启动一个软件即服务应用程序,它将为我的客户提供域注册,以便允许应用程序通过他们自己的注册域进行访问。 应用程序将使用 CakePHP 构建。通过访问某人的 CakePHP 应用程序,CakePHP
为了扩充自己的知识面,我想尝试做一个SaaS应用。我不太关心应用程序的功能,但我想了解它背后的技术。所以我的问题是,有人会如此友善并告诉我从哪里开始吗?一些好的阅读、教程、文章或书籍?我最感兴趣的是:
建议将什么作为软件即服务产品的身份验证解决方案? 具体来说,我的产品的客户通常信息技术技能较低,甚至可能在其组织内没有 IT 部门。我仍然想让我的应用程序根据其内部目录服务(eDirectory、Ac
我知道这个问题之前已经发布过,但没有得到彻底的回答。另外我认为它仍然取决于问题参数。假设您的 SaaS 服务有很多客户,但每个客户的数据量相对较少,那么拥有一个数据库可能是有意义的。 如果您的客户长期
我们公司制作基于网络的应用程序,按工作站收费。 这意味着用户/通行证只能在一台特定的机器上使用。 目前发生的情况是多个用户正在共享凭据,如果他们没有同时进行,我们没有任何方法可以防止这种情况发生。 应
这不完全是一个编程问题,但我认为这仍然是为我的问题找到答案的最佳社区。 我想知道是否有描述服务的特定技术术语,如 sandstorm.io .我正在寻找一种比“个人云”或“SaaS”更具体的流行词,准
我正在创办一家提供 Web SaaS ( https://tuilder.com/ ) 的初创公司。大计划和潜力。 我对 YugaByte 的全局复制感兴趣。目前我已经建立了一个对 BadgerDB
我正在构建一个 Web 门户,该门户将在托管模型 (SAAS) 上租给客户,他们将在自己的域中使用具有自己品牌的整个门户功能。 现在我不希望他们获取我的门户网站的文件,但仍然能够使用自定义品牌门户。
我知道我的谷歌搜索技能让我失望了,因为那里有 必须是这样的:一个简单、易于使用的远程托管目录服务(更好的是,通过几个不同的接口(interface)和 SSO 公开用户目录)。 你知道一个和/或有一个
我目前正在运行一个 SAAS 应用程序,并且正在使用 Mailjet 从我们的应用程序发送邮件。 一些较大的客户一直要求允许从他们的域(例如 info@largehotel.com)而不是我们的系统(
在我构建的几乎每个应用程序中,我都会创建某种用户日志表来记录我的实际用户(不是访问者,而是拥有帐户的人)在网站上执行的各种事件。这主要用于客户服务问题,让我能够提取用户访问过的页面和操作的记录。 这样
我是一名优秀的程序员,十分优秀!