首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

多租户技术

独立数据库 这是第一种方案,即一个租户一个数据库,这种方案的用户数据隔离级别最高,安全性最好,但成本也高。 优点: 为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求; 如果出现故障,恢复数据比较简单。 缺点: 增大了数据库的安装数量,随之带来维护成本和购置成本的增加。 这种方案与传统的一个客户、一套数据、一套部署类似,差别只在于软件统一部署在运营商那里。如果面对的是银行、医院等需要非常高数据隔离级别的租户,可以选择这种模式,提高租用的定价。如果定价较低,产品走低价路线,这种方案一般对运营商来说是无法承受的。 共享数据库,隔离数据架构 这是第二种方案,即多个或所有租户共享 Database,但是每个租户一个 Schema。 优点: 为安全性要求较高的租户提供了一定程度的逻辑数据隔离,并不是完全隔离;每个数据库可以支持更多的租户数量。 缺点: 如果出现故障,数据恢复比较困难,因为恢复数据库将牵扯到其他租户的数据; 如果需要跨租户统计数据,存在一定困难。 共享数据库,共享数据架构 这是第三种方案,即租户共享同一个 Database、同一个 Schema,但在表中通过 TenantID 区分租户的数 据。这是共享程度最高、隔离级别最低的模式。 优点: 三种方案比较,第三种方案的维护和购置成本最低,允许每个数据库支持的租户数量最多。 缺点: 隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量; 数据备份和恢复最困难,需要逐表逐条备份和还原。 如果希望以最少的服务器为最多的租户提供服务,并且租户接受以牺牲隔离级别换取降低成本,这种方案最适合。

02

Linux上Samba服务的搭建和访问

在早期的网络世界中,档案数据在不同主机之间的传输大多是使用FTP服务,但是FTP服务传输档案有一些小小的问题,那就是我们无法直接修改主机上面的档案数据,也就是说我们如果想要修改某个档案的数据时,就必须将该档案的服务器下载后才能修改,这样就很麻烦了。其实解决这个问题也很简单,NFS服务就很好的解决档案数据不能直接修改的问题,因为NFS服务是直接将共享目录挂载到客户端的机器上,那么共享目录就好像成了自己的目录一样,共享数据的使用自然就很方便,但是,NFS也有一些小小的问题,它仅能使Unix Like的机器相互分享。那么我要是需要Windows与Unix-Like这两个不同的平台相互分享呢?那该怎么办?也就是说,FTP服务实现了跨平台分享,却无法修改共享数据;NFS解决了共享数据的修改问题,却没办法实现跨平台的共享。所以,SAMBA服务也就随着需要产生了。 它综合了FTP和NFS的有点,既实现了跨平台的传输,还满足了修改数据的功能。

03

RavenDB 文档建模--建模注意事项

我们在开始讲解如何在 RavenDB 中建模之前,先来看看注意事项,这些内容与我们将要辨析的模型有着直接的关系。 这里需要注意的第一点是 不要在不同应用之间建立共享数据库。很多设计者会建立共享数据库,用以在不同的应用之间共享相同的数据,虽然这样做能减少数据存储量,以及实现多应用使用相同数据的目的,但是在 RavenDB 中并不推崇这样的做法。这是因为虽然不同的应用看起来有些数据是一样的,我们会强制它们使用相同的方式处理数据,但是在大多数情况下不同的应用程序使用相互不同的方式处理类似的数据,如果使用共享数据的话,一个应用程序共享数据的结构的改变就会造成其他应用跟着一起改变,进而导致数据模型复杂性增加,并且也会增加不同应用开发团队之间沟通的成本和时间。因此每个应用程序应该对立的进行数据建模,并不断的根据需求进行改进。 读到到这里,肯定有人会问了:不同的应用程序直接或多或少的都需要共享数据,那么使用 RavenDB 如何实现这一点呢?我们可以使用 RavenDB 内置的 ETL 功能在不同应用程序服务器之间建立数据/信息流(这个内容将会在后续讲解)。 另一个要注意的是 某些情况下应该数据冗余存储,比如在 Order 文档中存在 Address 文档的链接,但是如果 Address 中的配送地址变了,那么 Order 文档中的历史订单的配送地址也会跟着改变,这样就出现了我上一篇文章说的数据损坏。那么,我们在进行建模的时候,应该考虑我的关注点是当前值(例如 Order 文档中的当前订单配送地址)还是时间点值(例如 Order 文档的历史订单配送地址),如果是时间点值那么我们就需要进行数据冗余存储,例如在 Order 文档中存储配送地址的详细信息。 以上几小段的内容总结下来就是建模文档的核心原则:

02
领券