一种电子商务系统的Cache对象缓存方法与流程

文档序号:16326854发布日期:2018-12-19 05:58阅读:343来源:国知局

本发明涉及数据缓存方法领域,特别是一种电子商务系统的cache对象缓存方法。

背景技术

电子商务系统是保证以电子商务为基础的网上交易实现的体系。在网上交易,其信息沟通是通过数字化的信息沟通渠道而实现的,一个首要条件是交易双方必须拥有相应信息技术工具,才有可能利用基于信息技术的沟通渠道进行沟通。同时要保证能通过internet进行交易,必须要求企业、组织和消费者连接到internet,否则无法利用internet进行交易。

由于电子商务系统网上交易量巨大,需要缓存的数据量更是与日俱增,所以往往采用缓存量较大的集群缓存系统。但是,现有的集群缓存系统,如hpibrix集群缓存系统、华赛n8500集群nas系统、中科院计算所bwstor蓝鲸集群缓存系统、龙存科技loongstore集群缓存系统等等,虽然具有很高的性能,但是扩容不够灵活可靠,在处理巨大的数据量时可用性和稳定性都不高,且在部分物理服务器硬件故障的情况下可能会对上级应用停止缓存服务,容易引起数据丢失与不完整。



技术实现要素:

为了克服现有技术的上述缺点,本发明的目的是提供一种扩容灵活可靠、大容量、高可用性和高数据安全性的电子商务系统的cache对象缓存方法。

本发明解决其技术问题所采用的技术方案是:

一种电子商务系统的cache对象缓存方法,所述电子商务系统包括缓存cache和上级应用,所述缓存cache包括主控服务器和多个存储节点,所述主控服务器的对象缓存方法包括以下步骤:

(1)维护存储节点的参数配置信息,所述参数配置信息包括各存储节点所构成的集群的网络拓扑关系、各存储节点的hash值以及各存储节点的负载量;

(2)接收由上级应用发送的待缓存数据,所述待缓存数据包括键值信息和数据信息;

(3)计算该待缓存数据的hash值并根据参数配置信息确定与待缓存数据对应的hash值和存储节点;

(4)将该待缓存数据发送到对应的存储节点。

作为本发明的进一步改进:所述主控服务器的对象缓存方法的步骤(4)进一步包括:创建binlogdump线程将待缓存数据发送到对应的存储节点。

作为本发明的进一步改进:所述存储节点的对象缓存方法包括以下步骤:

(1)接收由主控服务器发送的待缓存数据,存储节点包括多个用于映射不同键值信息的hash值;

(2)建立多个存储实例,将同一份待缓存数据重复拷贝在多个存储实例内;

(3)将多个存储实例分别部署在不同的物理服务器上;

(4)创建sql线程以读取多个存储实例其中一个的数据。

作为本发明的进一步改进:所述存储节点的对象缓存方法的步骤(1)进一步包括:

(1)创建i/o线程以连接主控服务器创建的binlogdump线程;

(2)通过i/o线程读取由binlogdump线程发送的待缓存数据。

作为本发明的进一步改进:所述主控服务器的对象缓存方法还包括动态增删存储节点的方法,该方法具体包括以下步骤:

(1)根据所述参数配置信息中的各存储节点的负载量,判断各存储节点的负载量是否在预设的阈值范围内;

(2)若是,则保持存储节点数目不变;

(3)若否,则增加/移除存储节点,重新分配各存储节点的hash值,并更新所述参数配置信息。

作为本发明的进一步改进:所述动态增删存储节点的方法的步骤(3)进一步包括:

(1)判断是否存在负载量大于所述阈值范围的最大值的存储节点;

(2)若是,则增加至少一个存储节点;

(3)判断是否存在负载量小于所述阈值范围的最小值的存储节点;

(4)若是,则移除至少一个存储节点。

作为本发明的进一步改进:所述主控服务器的对象缓存方法还包括实时监控所述物理服务器的运行状况的方法,该方法具体包括以下步骤:

(1)在读取所述存储节点内的数据时,判断选择的物理服务器是否故障;

(2)若是,则重新选择其他的物理服务器;

(3)若否,则读取部署在该物理服务器上的存储实例内的数据。

与现有技术相比,本发明的有益效果是:

在本方法中,能够做到把待缓存数据平均分配到不同存储节点,每份待缓存数据都会多份保存,并且在不同物理服务器上分布,这样当待缓存数据的数据量增加的时候,就可以灵活动态地增加存储节点来进行扩容;而且在动态增删存储节点的时候,可以把受影响数据的范围降到最低,能够保证电子商务系统的cache的大容量、高可用性和高数据安全性。

具体实施方式

现结合实施例对本发明进一步说明:

一种电子商务系统的cache对象缓存方法,所述电子商务系统包括缓存cache(cache)和上级应用,所述缓存cache(cache)包括主控服务器和多个存储节点,所述主控服务器的对象缓存方法包括以下步骤:

(1)维护存储节点的参数配置信息,所述参数配置信息包括各存储节点所构成的集群的网络拓扑关系、各存储节点的hash值以及各存储节点的负载量;

(2)接收由上级应用发送的待缓存数据,所述待缓存数据包括键值信息和数据信息;

(3)计算该待缓存数据的hash值并根据参数配置信息确定与待缓存数据对应的hash值和存储节点;

(4)将该待缓存数据发送到对应的存储节点,进一步包括:创建binlogdump线程将待缓存数据发送到对应的存储节点。

所述存储节点的对象缓存方法包括以下步骤:

(1)接收由主控服务器发送的待缓存数据,存储节点包括多个用于映射不同键值信息的hash值;

(2)建立多个存储实例,将同一份待缓存数据重复拷贝在多个存储实例内;

(3)将多个存储实例分别部署在不同的物理服务器上。

(4)创建sql线程以读取多个存储实例其中一个的数据。

上述存储节点的对象缓存方法的步骤(1)进一步包括:

(1)创建i/o线程以连接主控服务器创建的binlogdump线程;

(2)通过i/o线程读取由binlogdump线程发送的待缓存数据。

所述主控服务器的对象缓存方法还包括动态增删存储节点的方法,该方法具体包括以下步骤:

(1)根据所述参数配置信息中的各存储节点的负载量,判断各存储节点的负载量是否在预设的阈值范围内;

(2)若是,则保持存储节点数目不变;

(3)若否,则增加/移除存储节点,重新分配各存储节点的hash值,并更新所述参数配置信息。

上述动态增删存储节点的方法的步骤(3)进一步包括:

(1)判断是否存在负载量大于所述阈值范围的最大值的存储节点;

(2)若是,则增加至少一个存储节点;

(3)判断是否存在负载量小于所述阈值范围的最小值的存储节点;

(4)若是,则移除至少一个存储节点。

所述主控服务器的对象缓存方法还包括实时监控所述物理服务器的运行状况的方法,该方法具体包括以下步骤:

(1)在读取所述存储节点内的数据时,判断选择的物理服务器是否故障;

(2)若是,则重新选择其他的物理服务器;

(3)若否,则读取部署在该物理服务器上的存储实例内的数据。

在本方法中应用的cache优选的存储引擎为pigeonflexobject和pigeonlist。

业界通常认为关系型数据库系统自身限制了数据的吞吐量,直接依靠传统的关系型数据库系统如oracle、mysql是比较难解决上述问题的,同时相应的成本会很高,为了处理巨大的数据量同时支持高可用性,存储引擎选用pigeonflexobject和pigeonlist,采用了可伸缩的、高可用的、分布式结构化的key-value存储方案,从而解决大规模数据在数据量不断增长的情况下,让服务更加稳定,更容易扩展;能够解决大容量的关键数据缓存,支持海量的交易数据、用户数据、用户行为数据的缓存,并且可以实现极高的稳定性,甚至在部分物理服务器硬件故障的情况下也要保证该缓存系统对上级应用不停止服务,不会引起数据丢失与不完整。

所述pigeonflexobject是一个高性能、持久化、分布式的key-value数据对象存储引擎,其主要特点:常用数据保存在内存,读写性能极为高效;支持json或者xml等通用的各种格式化数据;支持redo-log数据持久化技术;分布式、主从同步、读写分离。

所述pigeonlist是一个高性能、持久化、分布式的key-list数据队列存储引擎,其主要特点:支持海量list,每个list可以支持数以10亿计的对象常用数据保存在内存,读写性能极为高效;一个list由多个band组成;一个band包含有多个对象。band采用块链组织,通过二分法可极快的查找和添加删除操作,快速的插入,删除,定位列表中的任意对象;支持任意排序条件;支持redo-log数据持久化技术;分布式、主从同步、读写分离。

本发明的功能:在本方法中,能够做到把待缓存数据平均分配到不同存储节点,每份待缓存数据都会多份保存,并且在不同物理服务器上分布,这样当待缓存数据的数据量增加的时候,就可以灵活动态地增加存储节点来进行扩容;而且在动态增删存储节点的时候,可以把受影响数据的范围降到最低,能够保证电子商务系统的缓存cache的高可用和数据安全。

综上所述,本领域的普通技术人员阅读本发明文件后,根据本发明的技术方案和技术构思无需创造性脑力劳动而作出其他各种相应的变换方案,均属于本发明所保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1