一种库存数据处理方法和装置的制造方法_3

文档序号:9708388阅读:来源:国知局
息和库存信息等与上面类似的方法重新进行分布式缓存。
[0037]上面结合【具体实施方式】描述了本发明的库存数据处理方法的流程,下面将结合【具体实施方式】描述应用上述方法的库存数据处理装置。
[0038]参见图2,图2是根据本发明一种实施方式的库存数据处理装置的结构示意图,该装置200具体可包括:
[0039]模型计算模块201,用于根据各应用服务器的服务能力将物品库存信息分布式地存储在所述各应用服务器的内存,其中,所述物品库存信息包括:物品类型和该物品类型对应物品的库存;
[0040]缓存处理模块202,用于根据对库存的访问请求读取所述内存中的物品库存信息,并对所述物品的库存进行扣减操作;
[0041]数据库处理模块203,用于在缓存处理模块在所述内存的扣减操作成功之后,根据所述访问请求对存储所述物品的库存信息的数据库进行数据库扣减操作。
[0042]本发明的库存数据处理装置200可适用于各种物品的库存数据处理,对进行秒杀、抢购活动等高并发访问商品库存的情况尤为适用。装置200可包括模型计算模块201、缓存处理模块202和数据库处理模块203,这三个模块可以设置能够数据通信的不同服务器上,并且彼此之间可以调用,或者供服务器上的其他功能模块调用。
[0043]模型计算模块201可设置在应用服务器上,也可以设置应用服务器之外的单独的服务器上。模型计算模块201根据各应用服务器的服务能力将物品库存信息分布式地存储在所述各应用服务器的内存,其中,所述物品库存信息包括:物品类型和该物品类型对应物品的库存,物品类型可涉及大于或等于I个类型,每一个物品类型具有对应的一个库存或库存值。在一些具体的实施方式中,物品可以是电子商场上售卖的商品式中,物品可以是电子商城上售卖的商品。各应用服务器可以是处理来自电子商城客户端的购买、浏览等访问请求的应用服务器。应用服务器的个数可以包括一个或多个,各应用服务器可通过本服务器的CHJ核数和/或内存数等配置资源确定本服务器向外(例如,客户端等)提供服务的服务能力。
[0044]在一些实施方式中,模型计算模块201根据各应用服务器的服务能力将物品库存信息(例如,物品类型和该物品对应的库存等)分布式地存储在各应用服务器的内存可以包括:根据各服务器的服务能力、所述各应用服务器的内存的最大连接数和所述物品类型涉及的物品类型总数确定各应用服务器的库存量区间,然后基于确定的各应用服务器的库存量区间并结合各应用服务器的服务能力和每一个物品类型对应物品的库存确定各应用服务器的库存量。例如,设定抢购商品的共有M件,也就是说,商品类型的总数为M,每一个商品类型对应商品的库存为1应用服务器的数量为1(,分别为&?1,&?2,&?3,……apk,对应的服务能力分别为&1,&2,&3,……ak,设定应用服务器apn的内存能支持的最大连接数为C,则应用服务器apn可以分配的一个商品类型的商品的库存量区间为[l,C*an/((al+a2+a3+……+ak)*M)],其中,*表示相乘,/表示相除。根据应用服务器apn的服务能力和每一个商品类型对应商品的库存N确定的应用服务器apn可分配的库存量为:N*an/(al+a2+a3+……+ak),若该值大于上面基于应用服务器apn的服务能力an、内存的最大连接数C和商品类型总数M确定出的库存量的上限C*an/((al+a2+a3+……+ak)*M),则应用服务器apn的库存量的取值为:C*an/((al+a2+a3+……+ak)*M);若该值小于I,则应用服务器apn的库存量的取值为I;若该值在上述确定的库存量区间之中,则应用服务器的库存量为:N*an/(al+a2+a3+……+ak)。本发明将商品的库存信息分布根据各应用服务器的服务能力分别进行存储,建立了库存模型,可有效降低单台缓存服务器的压力,并保证了库存值的全局唯一性。
[0045]模型计算模块201根据各应用服务器的服务能力将物品库存信息分布式地存储在各应用服务器的内存还包括:在确定出各应用服务器的库存量之后,在各应用服务器中,将物品类型作为键值Key,该物品类型对应物品的库存作为属性值value,存储在本应用服务器的内存。
[0046]在本发明的一些实施方式中,模型计算模块201在库存信息的缓存处理中,在对物品类型的KEY存储中,还可以采用余数分散方法在各缓存服务器进行分散处理,例如,对物品类型的总数KEY值用缓存服务器的数量η取模求余,将物品的库存值分散存放在不同的缓存服务器,以便降低缓存服务器压力和提高查找效率。
[0047]本发明将商品的库存信息根据各应用服务器的服务能力分布式地进行存储在内存,建立了库存模型,通过余数分散算法,可有效降低单台缓存服务器的库存数据读取压力,提高了对商品库存访问请求的响应速度,并保证了库存值的全局唯一性,方便通过商品类型的Key值查找对应的库存。
[0048]缓存处理模块202可设置各应用服务器上,也可以设置在与应用服务器通信的其他设备上。缓存处理模块202根据对库存的访问请求读取所述内存中的物品库存信息,并对所述物品的库存进行扣减操作。例如,可以根据来自用户的客户端对商品的库存的访问请求(例如,对商品的购买访问请求,其中包括购买的数量)读取本服务器内存中缓存的库存量,通过在缓存的应用服务器上设置内存锁,快速的锁定商品的库存值,若该商品的库存值大于零,则基于访问请求中的购买数量对该商品的库存值进行扣减,在该种情况下对所述存储的库存值扣减为成功。若该商品的库存值等于零,则向该访问请求返回失败消息,即,商品的库存为零,无法购买该商品。本发明的库存数据处理方法通过将对商品库存的访问请求在应用服务器上进行限流,同时将商品库存的过程锁迀移到应用服务器的内存缓存中,大大减少了对数据库的依赖,有效缓解了现有技术中数据库锁等待造成的访问阻塞。
[0049]数据库处理模块203可以在所述内存的扣减操作成功之后,根据所述访问请求对存储所述物品的库存信息的数据库进行数据库扣减操作。也就是说,本发明的数据库处理模块203不是基于访问请求直接进行数据库的数据读写操作,而是在应用服务器的内存成功扣减的访问请求才能继续访问数据库,并进行实际的数据库扣减操作,避免了现有技术中对数据库的过分依赖,极大减少了数据库锁的争用,显著提高了库存数据的访问请求的响应速度。以上面的商品类型的总数M且每一商品类别的库存为N为例,最后成功访问数据库的连接数降至最多N*M。
[0050]本发明通过模型计算模块基于应用服务器的服务能力将商品库存信息分布式地缓存在内存,并通过缓存处理模块在内存中基于访问请求对商品库存进行扣减,数据库处理模块在内存成功扣减的情况下才允许访问请求实际读取数据库进行数据库扣减操作,利用应用服务器的内存读取效率高的特点,大大提高了访问请求的响应速度;而且将尽可能多的访问流量阻挡在了应用服务器一侧,将过程锁迀移至应用服务器的缓存,基本上摒弃了对数据库的依赖,大大减少了数据库锁等待导致的响应延迟。
[0051]本发明的库存数据处理装置还可包括调度模块,该调度模块可调用模型计算模块201
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1