[发明专利]一种同步请求的异步并发系统在审
| 申请号: | 202210943199.6 | 申请日: | 2022-08-08 |
| 公开(公告)号: | CN115408114A | 公开(公告)日: | 2022-11-29 |
| 发明(设计)人: | 薛小珊 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
| 主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/50 |
| 代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 阚恭勇 |
| 地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 同步 请求 异步 并发 系统 | ||
本发明提供一种同步请求的异步并发系统,属于同步请求领域,本发明包括多线程池设计、Future‑Callback机制、CountDownLatch计数器、同步等待回调机制。基于CountdownLatch机制初始化多个线程池的调度与同步返回,基于java的ExecutorService初始化线程池,线程池内使用Future‑Callback机制完成池内多线程的同步等待。本系统的实现主要适用于分组事务隔离处理,规划多线程池执行,并通过池内Future等待+池间计数器调度实现高性能同步请求的处理与返回。
技术领域
本发明涉及同步请求技术领域,尤其涉及一种同步请求的异步并发系统。
背景技术
伴随着互联网技术的飞速发展和软件复杂度的提高,一些同步请求不但事务越来越复杂,同时对性能要求越来越高。
复杂事务的同步处理的实现方案有多种,选择一种高性能架构是一种紧迫诉求。下面是一些最常用的实现技术:
1)硬件方式提速:通过不断提升CPU+内存的硬件性能提高执行效率,但是基于业务逻辑本身的限制,很多场景并不能良好的提高执行效率
2)通过Kafka等方式异步实现:同步实现进行生产者、消费者模式拆分,对于部分同步要求不高的场景如购物下单的后续流程有良好效果,但是对于严格实时等待的机制无法良好的处理;
单层线程池处理:将事务拆分到线程池的单个线程执行,对于简单场景有一定效率提升,但是对于复杂分层结构处理不好,不便于扩展与事务隔离,比如一个请求要调用多个组织机构,每个组织机构要出发多个请求。
发明内容
为了解决以上技术问题,本发明提供了一种同步请求的异步并发系统。选择使用双层异步架构实现同步事务返回:首先不依赖于硬件的提速,能做到底层解耦;能够保持严格等待,避免方案2的纯异步架构;另外,进行分层隔离处理复杂事务,架构清晰,便于扩展。
本发明的技术方案是:
一种同步请求的异步并发系统,包括多线程池设计、Future-Callback机制、CountDownLatch计数器、同步等待回调机制。
本发明基于CountdownLatch机制初始化多个线程池的调度与同步返回,基于java的ExecutorService初始化线程池,线程池内使用Future-Callback机制完成池内多线程的同步等待
其中:
1)多线程池设计:同步启动多个线程池进行事务分组隔离,相互不影响;
2)Future-CallBack机制:单事务的线程池内通过Future任务实现异步执行,同时通过CallBack机制+future.get()同步等待单线程的执行完成;
3)CountDownLatch机制:对于多个隔离的线程池之间通过CountDownLatch 机制进行调度,每次执行1个线程池完成则countDown()进行计数器减1操作,待所有线程池执行完成则恢复await断点执行;
4)同步等待回调:线程池内通过Future.get完成同步等待,多个线程池通过await()机制等待同步返回。
进一步的,
对于复杂性高事务处理,通过多线程池进行分组隔离并发执行;
多线程池同步执行,每个线程池执行1个事务;线程池内采用Future-Callback 回调机制完成线程内同步等待;线程池之间采用CounDownLatch计数器实现线程池间同步等待。
对于事务或数据进行分组划分,分数组等同于线程池的数量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210943199.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种隔离检测舱及检测方法
- 下一篇:一种低剖面2.6G通信天线振子单元





