拆分相近的东西(Z轴原则)
通常可以利用客户特有的属性开展拆分,如客户ID、姓名、所在地等。特别大的相似数据集合,如迅速增长的大型客户群。标识你所知道的客户属性,如客户ID、姓、所在地或设备,依据这些属性拆分数据和服务。
客户信息的增长速度超过了其他所有数据的增长,或者你必须要在要扩展的某些客户群之间执行故障隔离。Z轴拆分除了有助于扩展客户群,还适用于其他不能采用Y轴拆分方法的大型数据集合。
通常被称为数据分片,即把数据集合或服务分割成几片。这些数据片一般大小相同,但假如有必要的话,也有可能大小不同。这样子做的原因之一便是让你推出的应用可以先只决定小部分客户,当你认为自个已经发现并解决了主要问题后,再逐渐应用于越来越多的客户,从而降低了风险。
通常,咋们全是依据对请求者或客户的清楚开展分片的。假设咋们提供的是打卡和考勤管理系统,而客户是雇员数大于1000的公司级客户,咋们负责对每个客户的员工开展考勤跟踪。咋们可能会确定依照公司开展分片,即每个公司都有自个专用的Web页面、应用程序和数据库服务器。考虑到咋们还想利用多租户架构提供的节约成本的好处,那么可以把几家小公司划分到一个数据片中。拥有很多员工的大公司可以有专用的硬件,而员工相对较少的小公司则可以共同存在于较大的数据片中。利用员工和公司之间的关系把系统划分成了可扩展的几部分,从而可以采用较少的、成本较低的硬件,实现横向扩展。
假如咋们是手机广告服务提供商,就必须清楚终端顾客所用设备及其运营商,二者都很引人注目,都可用于划分数据。假如咋们是电子商务运营商,那么可以依据顾客的所在地划分顾客群,这样子能有效地利用配送中心的可用库存。或者也可以依据客户的新老水平、购买次数和购买金额划分客户。假如这些方法都失败了,那么可以利用在顾客注册时分配给他的顾客ID的模数或散列表开展划分。
为什么要拆分类似的东西呢?相对高速增长的公司来说,答复显而易见。响应请求的速度部分是由远近位置不同的缓存命中率确定的。该速度确定了一个系统可以处置多少个事务,从而确定了处置一定数量的请求,必须要多少个系统。一种极端情况,是对数据不做划分,那么当咋们要响应一个顾客的请求,从而必须要遍历一块巨大的数据时,事务处置的速度会慢得令人很难忍受。当响应请求的速度至关重要,而响应请求要查询的数据巨大时,拆分不同的东西或者拆分类似的东西就势在必行了。
拆分类似的东西显然并不局限于拆分客户,不过依据咋们的咨询经验,拆分客户是最常见也最简单的方法。有时,咋们也推荐拆分产品目录。不过相对要把多种各样的产品目录拆分成草坪躺椅和尿布这样子的数据项的情况,咋们会把它归为拆分不同的在西咋们也曾赞助客户利用事务ID的模数或散列表开展划分。在这种情况下,咋们对请求者一无所知,但咋们却有一个可以利用的单一增长的网站开发数值。相对要保留事务日志以便将来可以研究其中错误的系统,可以采用这种类型的划分。
本文章由新概念互动原创,如没特殊注明,转载请注明来自:http://www.jianzhan0.com/zhiku/76718.html