高并发数据异步处理方法及装置制造方法及图纸

技术编号:38514856 阅读:8 留言:0更新日期:2023-08-19 16:57
本发明专利技术涉及计算机领域,具体涉及高并发数据异步处理方法及装置。该方法包括接收用户请求、解析请求数据、分配多线程处理器、建立分布式消息处理机制、并发控制机制、逻辑处理以及数据异步处理查询。本发明专利技术提供的高并发数据异步处理方法能够快速处理高并发量的请求,提高系统的性能和效率。同时,通过采用多线程和分布式消息处理机制,使得系统更加稳定可靠,具有较强的容错能力和扩展性。本发明专利技术所提供的高并发数据异步处理装置能够有效地实现上述方法,具有高并发处理能力和良好的可扩展性,可以有效降低数据处理延时,提高系统的吞吐量和响应速度。响应速度。响应速度。

【技术实现步骤摘要】
高并发数据异步处理方法及装置


[0001]本专利技术涉及计算机领域,具体涉及一种高并发数据异步处理方法及装置。

技术介绍

[0002]当前的积分兑换平台和积分商城平台等应用中,由于用户抢购活动的热度和参与人数的增加,高并发请求对系统的性能和可靠性提出了更高的要求。传统的同步处理方式难以满足需求,常常会出现超卖的情况,导致用户体验下降和系统运行异常。
[0003]在传统的同步处理方式中,当一个请求到达时,系统会立即进行处理,直到处理完成后才能处理下一个请求。这种方式存在以下问题:1.性能瓶颈:同步处理方式无法充分利用系统的资源,当并发请求增加时,容易导致系统性能下降。
[0004]2.容易超卖:在高并发情况下,多个请求同时访问资源时,可能会导致资源竞争问题,从而造成超卖情况。
[0005]3.不可靠性:当系统出现异常或处理失败时,无法及时处理后续请求,导致系统崩溃或数据不一致。

技术实现思路

[0006]为了解决上述问题,本专利技术提供了一种高并发数据异步处理方法及装置,用于在高并发抢购场景中防止超卖,适用于积分兑换平台和积分商城平台等应用。该方法利用异步处理方式,有效解决了高并发情况下的数据处理问题,保证了系统的可靠性和性能。
[0007]本专利技术采用以下技术方案实现:第一方面,本专利技术提供了一种高并发数据异步处理方法,应用于服务端,该方法包括以下步骤:接收来自用户端的抢购请求,根据用户端的IP地址创建唯一的网络标识符,并反馈数据异步处理查询标识至用户端;对所述抢购请求解析获得请求数据,根据所述请求数据的类别分配多线程处理器,并将请求数据存储到对应处理器请求队列中;通过分布式消息处理机制将每个处理器的请求队列与处理模块映射连接,所述处理模块读取每个请求队列的请求数据;基于所述处理模块设置的并发控制机制,采用线程池控制抢购请求同步处理数量;处理模块根据接收到的请求数据对抢购业务进行逻辑处理,根据处理结果更新订单以及库存状态,并将处理结果反馈至用户端,基于数据异步处理查询标识查询抢购处理流程。
[0008]作为本专利技术的进一步方案,接收来自用户端的抢购请求后,使用用户端IP地址结合当前时间戳来创建唯一的网络标识符,其中,将IP地址和当前时间戳拼接生成一个新的
字符串,使用哈希算法对所述字符串进行处理,生成唯一的标识符。
[0009]作为本专利技术的进一步方案,使用哈希算法对所述字符串进行处理,生成唯一的标识符,包括以下步骤:将IP地址和当前时间戳拼接生成的字符串作为输入进行哈希处理;使用SHA

256算法对IP地址和当前时间戳拼接的字符串进行哈希处理,调用哈希算法的digest()方法,将输入字符串使用UTF

8编码成字节序列,将字节序列作为输入,进行哈希处理,生成一个固定长度的二进制数组,返回哈希处理后的结果;其中,哈希处理后的结果为一个固定长度的二进制数组或十六进制字符串。
[0010]作为本专利技术的进一步方案,反馈数据异步处理查询标识至用户端之前,还包括使用UUID(通用唯一标识符)算法来生成唯一的标识符,使用UUID算法来生成唯一的标识符包括以下步骤:使用HttpServletRequest对象的getRemoteAddr(),获取用户端的IP地址;将获取到的IP地址作为输入参数,调用UUID.nameUUIDFromBytes()生成一个与IP地址相关联的UUID对象;使用toString()将生成的UUID对象转换为字符串形式,生成标识符;其中,生成的标识符还用于作为响应数据的一部分返回至用户端,由用户端保存所述标识符。
[0011]作为本专利技术的进一步方案,反馈数据异步处理查询标识至用户端之前,还包括使用Snowflake算法来生成唯一的标识符,使用Snowflake算法来生成唯一的标识符包括以下步骤:获取抢购请求的当前时间戳,并将当前时间戳转换为41位二进制数,使用一个Worker ID来标识每个节点,再将Worker ID转换为22位二进制数,将两个二进制数拼接成一个64位的二进制数,其中符号位固定为0;将生成的64位二进制数转换为十进制数,并作为Snowflake算法生成的唯一标识符返回至用户端,由用户端保存所述标识符。
[0012]作为本专利技术的进一步方案,所述Snowflake算法生成的唯一标识符由64位二进制数构成,包括三部分:第一部分为1位符号位,固定为0;第二部分为41位时间戳,精确到毫秒级,表示标识符生成时的时间;第三部分为22位序列号,保证在同一毫秒内生成的标识符唯一性。
[0013]作为本专利技术的进一步方案,对所述抢购请求解析获得请求数据时,根据接收的抢购请求,获取请求数据的字符串形式,对请求数据字符串进行解析,提取出请求参数并对请求参数进行校验,其中,所述请求参数包括抢购商品ID以及购买数量,所述抢购商品ID中包含商品信息字段来判断抢购请求所属的类别。
[0014]作为本专利技术的进一步方案,根据所述请求数据的类别分配多线程处理器之前,还包括:创建多个线程处理器,每个线程处理器维护一个请求队列;根据请求数据的类别,将请求数据放入对应的处理器请求队列中;处理器从请求队列中取出请求数据,对抢购业务进行逻辑处理;
其中,每个线程处理器维护一个请求队列时,每个线程处理器使用一个阻塞队列来实现请求队列,在处理器的主循环中使用take()方法从队列中取出请求,使用put()方法将请求放入处理器的请求队列中,每个处理器维护自己的请求队列,并且使用线程池的机制存储待处理的请求数据。
[0015]作为本专利技术的进一步方案,所述分布式消息处理机制为将消息从一个处理器传输到一个处理模块应用程序的分布式消息处理框架;通过分布式消息处理机制将每个处理器的请求队列与处理模块映射连接,包括以下步骤:在分布式消息处理框架中创建一个主题(Topic),用于存储所有的请求数据,其中,每个处理器的请求队列对应主题中的一个分区(Partition);在处理模块中创建一个消费者(Consumer),用于从主题中读取请求数据;对于每个处理器,创建一个生产者(Producer),用于将请求数据发送到主题中对应的分区;将每个生产者与对应的处理器请求队列映射关联起来,其中,每个生产者只向对应的分区发送请求数据;处理模块从主题中消费请求数据,以进行抢购业务的逻辑处理。
[0016]作为本专利技术的进一步方案,所述处理模块设置的并发控制机制包括处理器内部的并发控制和处理器之间的并发控制,其中,所述处理器内部的并发控制使用线程池来控制抢购请求的同步处理数量,线程池为预先创建的一定数量的线程,当有抢购请求到来时,从线程池中获取一个空闲线程进行处理,当线程池中没有空闲线程时,新请求将被放入等待队列中,等待空闲线程的释放;其中,所述处理器之间的并发控制为使用消息队列来进行控制,每个处理器都有一个请求队列,当有抢购请求到来时,请求将被放入相应的请求队列中,处理模块从每个请求队列中读取请求数据进行处理。
[0017]作为本专利技术的进一步本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种高并发数据异步处理方法,其特征在于,包括以下步骤:接收来自用户端的抢购请求,根据用户端的IP地址创建唯一的网络标识符,并反馈数据异步处理查询标识至用户端;对所述抢购请求解析获得请求数据,根据所述请求数据的类别分配多线程处理器,并将请求数据存储到对应处理器请求队列中;通过分布式消息处理机制将每个处理器的请求队列与处理模块映射连接,所述处理模块读取每个请求队列的请求数据;基于所述处理模块设置的并发控制机制,采用线程池控制抢购请求同步处理数量;处理模块根据接收到的请求数据对抢购业务进行逻辑处理,根据处理结果更新订单以及库存状态,并将处理结果反馈至用户端,基于数据异步处理查询标识查询抢购处理流程。2.如权利要求1所述的高并发数据异步处理方法,其特征在于,接收来自用户端的抢购请求后,使用用户端IP地址结合当前时间戳来创建唯一的网络标识符,其中,将IP地址和当前时间戳拼接生成一个新的字符串,使用哈希算法对所述字符串进行处理,生成唯一的标识符。3.如权利要求2所述的高并发数据异步处理方法,其特征在于,使用哈希算法对所述字符串进行处理,生成唯一的标识符,包括以下步骤:将IP地址和当前时间戳拼接生成的字符串作为输入进行哈希处理;使用SHA

256算法对IP地址和当前时间戳拼接的字符串进行哈希处理,调用哈希算法的digest()方法,将输入字符串使用UTF

8编码成字节序列,将字节序列作为输入,进行哈希处理,生成一个固定长度的二进制数组,返回哈希处理后的结果;其中,哈希处理后的结果为一个固定长度的二进制数组或十六进制字符串。4.如权利要求1所述的高并发数据异步处理方法,其特征在于,反馈数据异步处理查询标识至用户端之前,还包括使用UUID算法来生成唯一的标识符,使用UUID算法来生成唯一的标识符包括以下步骤:使用HttpServletRequest对象的getRemoteAddr(),获取用户端的IP地址;将获取到的IP地址作为输入参数,调用UUID.nameUUIDFromBytes()生成一个与IP地址相关联的UUID对象;使用toString()将生成的UUID对象转换为字符串形式,生成标识符;其中,生成的标识符还用于作为响应数据的一部分返回至用户端,由用户端保存所述标识符。5.如权利要求1所述的高并发数据异步处理方法,其特征在于,反馈数据异步处理查询标识至用户端之前,还包括使用Snowflake算法来生成唯一的标识符,使用Snowflake算法来生成唯一的标识符包括以下步骤:获取抢购请求的当前时间戳,并将当前时间戳转换为41位二进制数,使用一个Worker ID来标识每个节点,再将Worker ID转换为22位二进制数,将两个二进制数拼接成一个64位的二进制数,其中符号位固定为0;将生成的64位二进制数转换为十进制数,并作为Snowflake算法生成的唯一标识符返回至用户端,由用户端保存所述标识符。6.如权利要求4或5所述的高并发数据异步处理方法,其特征在于,对所述抢购请求解
析获得请求数据时,根据接收的抢购请求,获取请求数据的字符串形式,对请求数据字符串进行解析,提取出...

【专利技术属性】
技术研发人员:孙艳艳胡阳
申请(专利权)人:北京言子初科技有限公司
类型:发明
国别省市:

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

1