存储业务数据的方法、装置及数据库节点的制作方法_2

文档序号:9375803阅读:来源:国知局
示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0074]图1A是根据一示例性实施例示出的存储业务数据的方法的流程图,图1B是根据一示例性实施例示出的存储业务数据的方法的场景图,图1C是根据一示例性实施例示出的数据库节点的扩容场景图之一,图1D是根据一示例性实施例示出的数据库节点的扩容场景图之二,图1E是根据一示例性实施例示出的数据库节点的扩容场景图之三;该存储业务数据的方法可以应用在数据库集群中的数据库节点上,如图1A所示,该存储业务数据的方法包括以下步骤S101-S103:
[0075]在步骤SlOl中,检测是否需要对数据库节点所在的数据库集群进行扩容,如果检测到需要对数据库集群进行扩容,执行步骤S102,如果检测到不需要对数据库集群进行扩容,执行步骤S104。
[0076]在一实施例中,可以通过数据库节点当前已存储的业务数据的存储空间是否大于第一预设阈值来确定是否需要对数据库集群进行扩容;在另一实施例中,可以通过数据库节点当前已存储的业务数据的存储空间与数据库节点的总存储空间来确定是否需要对数据库集群进行扩容。
[0077]在步骤S102中,如果检测到需要对数据库集群进行扩容,确定数据库集群需要扩容的数据库节点的数量。
[0078]在一实施例中,数据库节点可以向服务器客户端获取需要扩容的数据库的节点的数量,例如,数据库节点可以向数据库集群对应的服务器客户端发送对数据库集群进行扩容的提醒,服务器客户端根据提醒向数据库节点返回数据库集群需要扩容的数据库节点的数量。
[0079]在步骤S103中,根据需要扩容的数据库节点的数量、数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储业务数据。
[0080]在一实施例中,根据需要扩容的数据库节点的数量确定数据库集群中的扩容后的数据库节点的总数量,确定需要存储的业务数据的第二编号相对于总数量的余数,根据余数和第一编号确定是否需要存储业务数据。在一实施例中,余数可以通过对总数量取第二编号的模数得到。在一实施例中,业务数据可以为用户在网站服务器上的记录信息,例如,对于新用户的注册信息,业务数据为新用户的用户表的记录数据,或者,用户针对一篇文章做了评论,业务数据为评论表中的评论记录,等等。
[0081]在步骤S104中,如果检测到不需要对数据库集群进行扩容,根据数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储业务数据。
[0082]下面结合图1B至图1E对本公开进行示例性说明,如图1B所示,在整个网站架构中的应用层11上,包括web服务器节点111和web服务器节点113,在web服务器节点111和web服务器节点113上分别设置有服务器客户端112和服务器客户端114。在数据层12,数据库节点121和数据库节点122为扩容前的数据库节点,数据库节点123和数据库节点124为扩容后的数据库节点。
[0083]如图1C所示,在对数据库集群扩容前,有两个数据库节点,S卩,数据库节点121和数据库节点122,对于网站服务器新增的业务数据,可以根据业务数据的第二编号(id)按照对2的取模结果分别存储在数据库节点121和数据库节点122中。
[0084]当网站服务器的业务数据的数量上升时,数据库节点121和数据库节点122的数据访问性能下降,如图1D所示,可以通过复制数据库节点121和数据库节点122的数据库,得到4个数据库节点,其中,数据库节点123和数据库节点124分别为数据库节点121和数据库节点122的拷贝。此外,对于拷贝之后的数据库节点中会有一些业务数据为冗余数据,因此可以将冗余数据删除,从而避免数据库集群中所存储的业务数据在多个数据库节点上重复存储。本领域技术人员可以理解的是,上述4个数据库节点仅作为示例性说明,并不能形成对本公开的限制,当数据库集群在4个数据库节点的情形下需要扩容时,仍可以通过拷贝数据库集群中已有数据库节点的方式实现数据库集群的扩容,通过拷贝方式对数据库集群进行扩容,能够使扩容后的数据库集群的存储空间达到了线性扩容的数倍,因此可以避免对数据库集群进行频繁的扩容操作。
[0085]本实施例中,在检测到需要对数据库集群进行扩容时,根据需要扩容的数据库节点的数量、数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储业务数据,从而可以避免新生的业务数据存储到同一个数据库节点,缓解数据库节点由于存储新生的业务数据引起的“热点”问题,避免针对最新创建的数据库节点设计缓存系统,大大简化了数据库集群的复杂度,并且更有利于数据库集群的后期维护。
[0086]在一实施例中,检测是否需要对数据库节点所在的数据库集群进行扩容,可包括:
[0087]确定数据库节点当前已存储的业务数据的存储空间是否大于第一预设阈值;
[0088]如果当前已存储的业务数据的存储空间大于第一预设阈值,确定需要对数据库节点所在的数据库集群进行扩容。
[0089]在一实施例中,检测是否需要对数据库节点所在的数据库集群进行扩容,可包括:
[0090]确定数据库节点当前已存储的业务数据的存储空间与数据库节点的总存储空间;
[0091]如果当前已存储的业务数据的存储空间与总存储空间的比值大于第二预设阈值,确定需要对数据库节点所在的数据库集群进行扩容。
[0092]在一实施例中,确定数据库集群需要扩容的数据库节点的数量,可包括:
[0093]向数据库集群对应的服务器客户端发送对数据库集群进行扩容的提醒;
[0094]接收来自服务器客户端根据提醒返回的数据库集群需要扩容的数据库节点的数量。
[0095]在一实施例中,根据需要扩容的数据库节点的数量、数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储业务数据,可包括:
[0096]根据需要扩容的数据库节点的数量确定数据库集群中的扩容后的数据库节点的总数量;
[0097]确定需要存储的业务数据的第二编号相对于总数量的余数;
[0098]根据余数和第一编号确定是否需要存储业务数据。
[0099]在一实施例中,方法还可包括:
[0100]在对数据库集群扩容后,确定数据库节点中已存储的冗余数据;
[0101]将冗余数据删除。
[0102]在一实施例中,确定数据库节点中已存储的冗余数据,可包括:
[0103]确定数据库节点相对应的拷贝的数据库节点的第三编号;
[0104]确定已存储的业务数据的第四编号相对于总数量的余数;
[0105]将余数与拷贝的数据库节点的第三编号相同的业务数据作为冗余数据。
[0106]具体如何在数据库节点上存储业务数据的,请参考后续实施例。
[0107]至此,本公开实施例提供的上述方法,可以避免新生的业务数据存储到同一个数据库节点,缓解数据库节点由于存储新生的业务数据引起的“热点”问题,避免针对最新创建的数据库节点设计缓存系统,大大简化了数据库集群的复杂度,并且更有利于数据库集群的后期维护。
[0108]下面以具体实施例来说明本公开实施例提供的技术方案。
[0109]图2是根据一示例性实施例一示出的存储业务数据的方法的流程图;本实施例利用本公开实施例提供的上述方法,以数据库节点当前已存储的业务数据的存储空间是否大于第一预设阈值来确定为数据库集群进行扩容以及如何确定扩容后的数据库集群中的数据库节点的数量为例进行示例性说明,本实施例结合图1B至图1E进行举例说明,如图2所示,包括如下步骤:
[0110]在步骤S201中,确定数据库节点当前已存储的业务数据的存储空间是否大于第一预设阈值,如果当前已存储的业务数据的存储空间大于第一预设阈值,执行步骤S202,如果当前已存储的业务数据的存储空间小于或者等于第一预设阈值,执行步骤S206。
[0111]在步骤S202中,如果当前已存储的业务数据的存储空间大于第一预设阈值,确定需要对数据库节点所在的数据库集群进行扩容。
[0112]在步骤S201和步骤S202中,在一实施例中,数据库节点可以通过其记录的已经存储的业务数据所占的存储空间是否大于第一预设阈值,如果已经存储的业务数据所占的存储空间大于第一预设阈值,表示当前数据库节点由于存储性能不能够存储更多的业务数据,在此情形下,确定需要对数据库节点所在的数据库集群进行扩容。在一实施例中,第一预设阈值可以根据数据库节点的具体存储性能来确定,本公开对第一预设预知的大小不做限制,本领域技术人员可以理解的是,同一数据库集群内不同的数据库节点对应的第一预设阈值可以不相同,也可以相同,本公开对此不做限制。
[0113]在步骤S203中,向数据库集群对应的服务器客户端发送对数据库集群进行扩容的提醒。
[0114]在步骤S204中,接收来自服务器客户端根据提醒返回的数据库集群需要扩容的数据库节点的数量。
[0115]在步骤S203和步骤S204中,在一实施例中,以数据库节点121为例进行示例性说明,当数据库节点121根据其已存储的业务数据所占的存储空间大于第一预设阈值时,数据库节点121可以向web服务器节点111的服务器客户端112发送需要扩容的提醒,以告知服务器客户端112其已不能存储更多的业务数据。服务器客户端112接收到提醒后,可以向相应的网络管理人员做出提示,在网络管理人员通过手动方式将数据库节点123和数据库节点124扩容到数据库集群中后,服务器客户端112记录已扩容的数据库节点的数量,
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1