请求处理系统技术方案

技术编号:36874400 阅读:9 留言:0更新日期:2023-03-15 20:21
本申请提供了一种请求处理系统,属于互联网技术领域。该请求处理系统包括路由器、消息队列集群、业务服务器集群以及数据库;所述路由器用于从终端的数据请求中获取目标数据的目标操作指令;将所述目标操作指令发送至所述消息队列集群中的目标队列;所述消息队列集群用于将所述目标队列中的所述目标操作指令,发送至目标业务服务器;所述目标业务服务器用于基于所述目标操作指令从所述数据库的缓存或者所述数据库中获取所述目标操作指令的执行结果;将所述执行结果返回至所述路由器;所述路由器还用于将所述执行结果发送至所述终端,由所述终端基于所述目标对象展示所述执行结果。该请求处理系统避免了缓存和数据库的不一致问题。致问题。致问题。

【技术实现步骤摘要】
请求处理系统


[0001]本申请涉及互联网
,特别涉及一种请求处理系统。

技术介绍

[0002]随着互联网技术的发展,通过电商平台进行购物,越来越受到欢迎。在电商领域,电商平台的后台服务器接受到的请求量十分庞大。后台服务器为了提高数据的读取速度,通常是对数据库中的数据进行缓存,使得终端可以直接从缓存中读取数据,无需访问数据库,从而减轻了数据库的压力,提高了服务器的性能。虽然缓存能够提高服务器的性能,然而缓存使用不当会导致缓存雪崩、缓存穿透以及缓存和数据库的双写一致性问题等问题。那么如何正确使用缓存,是一个需要解决的技术问题。
[0003]相关技术中,服务器通常使用先删除缓存后更新数据库的方式来解决缓存与数据库数据不一致的问题。相应的,在数据库中的数据发生变更时,服务器先删除缓存,再修改数据库,然后将更新后的数据存储到缓存中,从而可以避免缓存与数据库数据的不一致。
[0004]然而,在高并发环境下,服务器会并发处理大量数据请求。在对任一数据并发进行读取数据请求和更新数据请求的情况下,服务器在删除缓存后,立刻去读取缓存,此时读取到的缓存为空且数据库还未更新,因此在数据库中进行查询,会得到更新前的旧数据,并将该旧数据放入了缓存中,从而导致缓存与数据库数据不一致。

技术实现思路

[0005]本申请实施例提供了一种请求处理系统,能够避免缓存和数据库的不一致。所述技术方案如下:
[0006]根据本申请实施例的一方面,提供了一种请求处理系统,所述请求处理系统包括路由器、消息队列集群、业务服务器集群以及数据库;
[0007]所述路由器用于从终端的数据请求中获取目标数据的目标操作指令;将所述目标操作指令发送至所述消息队列集群中的目标队列,所述目标数据为终端展示的目标对象的属性数据,所述目标队列用于存储所述目标数据的数据操作指令,所述数据操作指令包括数据读取指令和数据更新指令;
[0008]所述消息队列集群用于将所述目标队列中的所述目标操作指令,发送至目标业务服务器,所述目标业务服务器为所述业务服务器集群中与所述目标队列关联的业务服务器;
[0009]所述目标业务服务器用于基于所述目标操作指令从所述数据库的缓存或者所述数据库中获取所述目标操作指令的执行结果;将所述执行结果返回至所述路由器;
[0010]所述路由器还用于将所述执行结果发送至所述终端,由所述终端基于所述目标对象展示所述执行结果。
[0011]在一些实施例中,所述路由器还用于从所述终端的数据请求中获取所述目标数据的数据类型;
[0012]所述将所述目标操作指令发送至所述消息队列集群中的目标队列,包括:
[0013]在所述数据类型为第一数据类型的情况下,将所述目标操作指令发送至第一队列,所述第一数据类型表示所述目标对象的只读属性,所述第一队列用于存储对所述只读属性的数据读取指令;
[0014]在所述数据类型为第二数据类型的情况下,将所述数据请求中携带的目标数据的目标操作指令发送至第二队列,所述第二数据类型表示所述目标对象的可编辑属性,所述第二队列用于存储对所述可编辑属性的数据操作指令。
[0015]在一些实施例中,所述目标操作指令为数据更新指令;
[0016]所述将所述目标操作指令发送至所述消息队列集群中的目标队列,包括:
[0017]确定与所述目标对象关联的相关对象,所述相关对象的属性与所述目标对象的属性互相影响;
[0018]将所述目标操作指令发送至第三队列,所述第三队列用于存储对所述相关对象的属性数据的数据操作指令。
[0019]在一些实施例中,所述目标操作指令为数据更新指令;
[0020]所述基于所述目标操作指令从所述数据库的缓存或者所述数据库中获取所述目标操作指令的执行结果,包括:
[0021]响应于所述数据更新指令,从所述数据库的缓存中删除所述目标数据;
[0022]对所述数据库中的所述目标数据进行更新,得到更新后的目标数据;
[0023]将所述更新后的目标数据存储到所述数据库的缓存中。
[0024]在一些实施例中,所述路由器还用于从所述终端的数据请求中获取所述目标对象的对象标识;
[0025]所述将所述目标操作指令发送至所述消息队列集群中的目标队列,包括:
[0026]将所述目标操作指令发送至与所述对象标识对应的目标队列。
[0027]在一些实施例中,所述目标操作指令为数据读取指令;
[0028]所述消息队列集群还用于在所述目标队列中存在与所述目标操作指令重复的重复操作指令,且所述目标操作指令与所述重复操作指令之间有数据更新指令的情况下,从所述目标队列中移除所述重复操作指令;在所述目标操作指令与所述重复操作指令之间没有所述数据更新指令的情况下,从所述目标队列中移除所述目标操作指令。
[0029]在一些实施例中,所述目标操作指令为数据更新指令;
[0030]所述消息队列集群还用于在所述目标队列中存在与所述目标操作指令重复的重复操作指令的情况下,从所述目标队列中移除所述目标操作指令。
[0031]在一些实施例中,对于任一业务服务器,所述路由器还用于基于所述业务服务器的状态信息,确定所述业务服务器的权重,所述状态信息用于指示所述业务服务器的工作状态;基于所述业务服务器的权重,从所述消息队列集群中确定与所述业务服务器关联的至少一个消息队列。
[0032]在一些实施例中,所述路由器还用于基于所述业务服务器的业务类型,确定所述业务服务器更新状态信息的时间间隔;每隔所述时间间隔,获取所述业务服务器的状态信息;响应于所述业务服务器的状态信息发生改变,更新与所述业务服务器关联的消息队列。
[0033]在一些实施例中,所述消息队列集群还用于响应于所述目标队列中的数据操作指
令发生更新,对更新后的所述目标队列的数据操作指令进行持久化。
[0034]在一些实施例中,所述路由器还用于在空闲的第一业务服务器添加至所述业务服务器集群的情况下,从所述业务服务器集群中确定处于第一状态的至少一个第二业务服务器,所述第一状态用于指示所述业务服务器的负载大于负载阈值;确定与所述至少一个第二业务服务器关联的至少一个消息队列;将所述至少一个消息队列与所述第一业务服务器关联。
[0035]在一些实施例中,所述业务服务器集群还用于在所述业务服务器集群中的第三业务服务器的状态为不可用的情况下,从所述业务服务器集群中移除所述第三业务服务器;
[0036]所述路由器还用于将所述第三业务服务器关联的至少一个消息队列,分配至所述业务服务器集群中的其他业务服务器。
[0037]本申请实施例提供了一种请求处理系统,该请求处理系统包括路由器、消息队列集群、多个业务服务器以及数据库,其中,通过路由器将获取到的目标数据中的目标操作指令发送至消息队列集群中的目标队列,消息队列集群将目标队列中的目标操作指令发送给与该目标队列关联的业务服务器,使得在对任一数据并发进行多个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种请求处理系统,其特征在于,所述请求处理系统包括路由器、消息队列集群、业务服务器集群以及数据库;所述路由器用于从终端的数据请求中获取目标数据的目标操作指令;将所述目标操作指令发送至所述消息队列集群中的目标队列,所述目标数据为终端展示的目标对象的属性数据,所述目标队列用于存储所述目标数据的数据操作指令,所述数据操作指令包括数据读取指令和数据更新指令;所述消息队列集群用于将所述目标队列中的所述目标操作指令,发送至目标业务服务器,所述目标业务服务器为所述业务服务器集群中与所述目标队列关联的业务服务器;所述目标业务服务器用于基于所述目标操作指令从所述数据库的缓存或者所述数据库中获取所述目标操作指令的执行结果;将所述执行结果返回至所述路由器;所述路由器还用于将所述执行结果发送至所述终端,由所述终端基于所述目标对象展示所述执行结果。2.根据权利要求1所述的系统,其特征在于,所述路由器还用于从所述终端的数据请求中获取所述目标数据的数据类型;所述将所述目标操作指令发送至所述消息队列集群中的目标队列,包括:在所述数据类型为第一数据类型的情况下,将所述目标操作指令发送至第一队列,所述第一数据类型表示所述目标对象的只读属性,所述第一队列用于存储对所述只读属性的数据读取指令;在所述数据类型为第二数据类型的情况下,将所述数据请求中携带的目标数据的目标操作指令发送至第二队列,所述第二数据类型表示所述目标对象的可编辑属性,所述第二队列用于存储对所述可编辑属性的数据操作指令。3.根据权利要求1所述的系统,其特征在于,所述目标操作指令为数据更新指令;所述将所述目标操作指令发送至所述消息队列集群中的目标队列,包括:确定与所述目标对象关联的相关对象,所述相关对象的属性与所述目标对象的属性互相影响;将所述目标操作指令发送至第三队列,所述第三队列用于存储对所述相关对象的属性数据的数据操作指令。4.根据权利要求1所述的系统,其特征在于,所述目标操作指令为数据更新指令;所述基于所述目标操作指令从所述数据库的缓存或者所述数据库中获取所述目标操作指令的执行结果,包括:响应于所述数据更新指令,从所述数据库的缓存中删除所述目标数据;对所述数据库中的所述目标数据进行更新,得到更新后的目标数据;将所述更新后的目标数据存储到所述数据库的缓存中。5.根据权利要求1所述的系统,其特征在于,所述路由器还用于从所述终端的数据请求中获取所述目标对象...

【专利技术属性】
技术研发人员:赵雅男李良斌
申请(专利权)人:北京声智科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1