CN117725567A - 基于Java实现同一账户多种身份在高并发场景中的管理方法 - Google Patents
基于Java实现同一账户多种身份在高并发场景中的管理方法 Download PDFInfo
- Publication number
- CN117725567A CN117725567A CN202311490113.XA CN202311490113A CN117725567A CN 117725567 A CN117725567 A CN 117725567A CN 202311490113 A CN202311490113 A CN 202311490113A CN 117725567 A CN117725567 A CN 117725567A
- Authority
- CN
- China
- Prior art keywords
- account
- identity
- switched
- switching
- list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims abstract description 12
- 238000012544 monitoring process Methods 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 230000009471 action Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种基于Java实现同一账户多种身份在高并发场景中的管理方法,包括以下步骤:S1:业务端发起账户身份切换请求后,将账户身份切换请求放入账户待切换身份任务列表中;S2:然后发动驱动账户待切换身份列表执行的信息;S3:服务端通过监听驱动账户待切换身份列表执行的消息,获取账户下的待切换身份列表;S4:判断待切换身份列表是否不为空;S5:设置账户身份切换保护时间,进行账户身份切换;S6:然后判断账户身份是否切换成功;S7:处理结束。本申请的基于Java实现同一账户多种身份在高并发场景中的管理方法,有效利用了账户资源并提高了业务完成速率及成功率,提高系统稳定性及特定场景的适应能力。
Description
技术领域
本申请属于同一账户多种身份在高并发场景中的管理方法技术领域,具体涉及一种基于Java实现同一账户多种身份在高并发场景中的管理方法。
背景技术
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
目前的一些账户系统是一账户多身份,且不支持多账户身份同时在线的账户系统,在这种情况下,一个账户下有多种身份,不同的身份不可以同时在线,每种身份对应了不同的信息。当用户用一个账户下的多个身份都需要发生业务的时候,每个业务都会触发账户身份切换的操作,随着业务量越大,并发越来越高,引起了上个业务切换完身份之后还没有完成业务操作就被另外一个业务将身份切换导致当前身份失效的问题,从而造成业务成功率下降,甚至难以完成当下互联网应用用户中心模块中通常提供了切换账户身份的能力,但是这些能力往往都不会考虑对当前身份下正在进行的业务成功与否及造成的影响,当切换身份异常频繁时就会导致业务难以继续。
为此,我们提出一种基于Java实现同一账户多种身份在高并发场景中的管理方法来解决上述问题。
发明内容
现在方案中在高并发场景下频繁切换账户身份造成业务无法稳定进行。使用本方法在账户身份切换后,设置账户身份切换保护时间,保护时间范围内再次切换账户身份将其业务放入重试队列,保证了每次账户身份切换后都能有一定的时间去完成后续业务,等待账户身份切换保护时间过期后,其他业务再进行账户身份切换来完成后续业务,有效利用了账户资源并提高了业务完成速率及成功率。当下互联网应用用户中心模块中通常提供了切换账户身份的能力,但是这些能力往往都不会考虑对当前身份下正在进行的业务成功与否及造成的影响,当切换身份异常频繁时就会导致业务难以继续。
本申请提供一种基于Java实现同一账户多种身份在高并发场景中的管理方法,S1:业务端发起账户身份切换请求后,将账户身份切换请求放入账户待切换身份任务列表中;
S2:然后发动驱动账户待切换身份列表执行的信息;
S3:服务端通过监听驱动账户待切换身份列表执行的消息,获取账户下的待切换身份列表;
S4:判断待切换身份列表是否不为空,如为空,则发送演示驱动账户待切换身份列表执行的消息,然后处理结束;若不为空,则获取账户下的待切换身份列表中时间最早的一个账户切换身份请求;
S5:设置账户身份切换保护时间,进行账户身份切换;
S6:然后判断账户身份是否切换成功,若切换成功后广播通知账户身份切换结果,然后移除账户下待切换身份列表中的记录;若账户身份切换不成功,则清空账户身份切换保护时间,然后广播通知账户身份切换结果,移除账户下待切换身份列表中的记录;
S7:处理结束。
包括业务端请求账户身份切换步骤和服务端异步处理账户身份切换步骤:
业务端请求账户身份切换步骤:业务端发起账户身份切换请求后,将账户身份切换请求放入账户待切换身份任务列表中,然后发动驱动账户待切换身份列表执行的信息;
服务端异步处理账户身份切换步骤:通过监听驱动账户待切换身份列表执行的消息,获取账户下的待切换身份列表,判断待切换身份列表不为空时,获取账户下的待切换身份列表中时间最早的一个账户切换身份请求,然后判断账户身份切换保护时间是否为空,若不为空则发送延时驱动账户待切换身份列表执行,然后处理结束,如果为空则需要设置账户身份切换保护时间,进行账户身份切换,然后判断账户身份是否切换成功,若切换成功后广播通知账户身份切换结果,然后移除账户下待切换身份列表中的记录,若账户身份切换不成功,则清空账户身份切换保护时间,然后广播通知账户身份切换结果,移除账户下待切换身份列表中的记录,最后处理结束。
在一些实施方式中,所述账户身份为根据预设多种账户身份。
在一些实施方式中,发动驱动账户待切换身份列表执行的信息从账户身份待切换列表按照请求时间顺序执行。
在一些实施方式中,账户身份切换保护时间用于操作的响应结果是异步的。
在一些实施方式中,该管理方法用于操作的账户系统是一账户多身份,且不支持多账户身份同时在线的账户系统。
在一些实施方式中,该管理方法采用的语言为Java语言。
本申请提供的基于Java实现同一账户多种身份在高并发场景中的管理方法,具有如下技术效果:
在一个账户下有多种身份,多种身份可同时在线的账户管理系统下,对高并发场景下频繁切换身份导致业务无法继续的场景无法支持的情况下,完成前置资源协调调度器的设计,对账户身份资源做协调分配,解决了特定场景下的资源协调问题,有效利用了账户资源并提高了业务完成速率及成功率,提高系统稳定性及特定场景的适应能力。
通过如下技术实现了同一账户多种身份在高并发场景中的管理方法:
(1)对账户切换身份设计了账户切换身份保护时间。
(2)通过广播的方式将账户切换身份通知到业务方。
(3)通过消息驱动的方式协调账户切换身份并完成延时重试切换的能力。
附图说明
图1是本发明的实施例所提供的基于Java实现同一账户多种身份在高并发场景中的管理方法整体结构示意图。
具体实施方式
下面将结合本申请的具体实施例,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
如图1所示,本申请提供一种基于Java实现同一账户多种身份在高并发场景中的管理方法,包括以下步骤:
S1:业务端发起账户身份切换请求后,将账户身份切换请求放入账户待切换身份任务列表中;
S2:然后发动驱动账户待切换身份列表执行的信息;
S3:服务端通过监听驱动账户待切换身份列表执行的消息,获取账户下的待切换身份列表;
S4:判断待切换身份列表是否不为空,如为空,则发送演示驱动账户待切换身份列表执行的消息,然后处理结束;若不为空,则获取账户下的待切换身份列表中时间最早的一个账户切换身份请求;
S5:设置账户身份切换保护时间,进行账户身份切换;
S6:然后判断账户身份是否切换成功,若切换成功后广播通知账户身份切换结果,然后移除账户下待切换身份列表中的记录;若账户身份切换不成功,则清空账户身份切换保护时间,然后广播通知账户身份切换结果,移除账户下待切换身份列表中的记录;
S7:处理结束。
基于Java实现同一账户多种身份不可同时在线条件下在高并发场景中的资源协调调度器设计,具有如下特征:操作的账户系统是一账户多身份且不支持多身份同时在线的;操作的对象是账户身份;操作的响应结果是异步的;操作的主要动作是对当前账户身份切换保护期进行判断,账户身份完成切换后会将切换结果以广播的形式通知给业务方,账户身份在保护时间内的无法被另外的切换动作所切换,账户身份在保护时间内发起切换被拦截的请求将会被放入重试队列并发送延时消息,等待延时消息触发重试。
包括业务端请求账户身份切换步骤和服务端异步处理账户身份切换步骤:
业务端请求账户身份切换步骤:业务端发起账户身份切换请求后,将账户身份切换请求放入账户待切换身份任务列表中,然后发动驱动账户待切换身份列表执行的信息;
服务端异步处理账户身份切换步骤:通过监听驱动账户待切换身份列表执行的消息,获取账户下的待切换身份列表,判断待切换身份列表不为空时,获取账户下的待切换身份列表中时间最早的一个账户切换身份请求,然后判断账户身份切换保护时间是否为空,若不为空则发送延时驱动账户待切换身份列表执行,然后处理结束,如果为空则需要设置账户身份切换保护时间,进行账户身份切换,然后判断账户身份是否切换成功,若切换成功后广播通知账户身份切换结果,然后移除账户下待切换身份列表中的记录,若账户身份切换不成功,则清空账户身份切换保护时间,然后广播通知账户身份切换结果,移除账户下待切换身份列表中的记录,最后处理结束。
在一些实施方式中,所述账户身份为根据预设多种账户身份。
在一些实施方式中,发动驱动账户待切换身份列表执行的信息从账户身份待切换列表按照请求时间顺序执行。
在一些实施方式中,账户身份切换保护时间用于操作的响应结果是异步的。
在一些实施方式中,该管理方法用于操作的账户系统是一账户多身份,且不支持多账户身份同时在线的账户系统。
在一些实施方式中,该管理方法采用的语言为Java语言。
本申请提供的基于Java实现同一账户多种身份在高并发场景中的管理方法,具有如下技术效果:
在一个账户下有多种身份,多种身份可同时在线的账户管理系统下,对高并发场景下频繁切换身份导致业务无法继续的场景无法支持的情况下,完成前置资源协调调度器的设计,对账户身份资源做协调分配,解决了特定场景下的资源协调问题,有效利用了账户资源并提高了业务完成速率及成功率,提高系统稳定性及特定场景的适应能力。
通过如下技术实现了同一账户多种身份在高并发场景中的管理方法:
(1)对账户切换身份设计了账户切换身份保护时间。
(2)通过广播的方式将账户切换身份通知到业务方。
(3)通过消息驱动的方式协调账户切换身份并完成延时重试切换的能力。
在一些具体实施方式中:接收到业务方请求账户身份切换后将切换请求存储入待切换任务列表中,并通过发送即时消息驱动处理账户身份切换;账户身份切换消费者接收到驱动消息从账户身份待切换列表按照请求时间顺序执行;要处理的账户身份待切换请求如果不在保护时间内则直接处理账户身份切换请求,并将账户身份切换请求结果以广播的形式通知给业务方,并将待切换任务从待切换任务列表中移除;如果在保护期内则放弃账户身份切换请求,并发送延时消息。
在一些具体实施方式中,业务端请求账户身份切换将账户身份切换请求放入账户待切换身份列表中,并同时发送驱动账户待切换身份列表执行的消息。
在一些具体实施方式中,服务端异步处理账户身份切换,通过监听驱动账户待切换身份列表执行的消息完成账户身份切换列表中账户身份切换请求的处理。账户身份切换过程中会判断账户身份切换保护时间是否为空,如果不为空则发送延时触发重试消息再次重试,如果为空则需要设置账户切换身份保护时间后进行账户身份切换,随即将账户身份切换的结果广播出去,最终又业务侧接收到账户身份切换的广播结果继续完成后续业务。
在一些具体实施方式中,以账号维度进行登录,账号登录后可以配置管理多种身份,如:纳税人识别号A,纳税人识别号B,纳税人识别号C……等。由于系统设计及外部种种原因导致,一个账号同时只能保持其管理的一个纳税人识别号是在线的(例如纳税人识别号A),并且一个纳税人识别号需要做业务的话,必须保证这个税号是在线的。那么业务端对服务端的同一个账号的各个账号集中并发发起大量请求时,如果我们接收到业务就直接进行身份切换,就会导致身份一直在切换,无法进行对应的业务操作,毕竟业务执行也需要一定的时间,所以我们需要对身份的切换进行管理和控制,避免接收到业务就切换身份,导致身份一直在切换,无法进行对应的业务操作的情况发生。当一个业务请求到服务端的时候,我们会判断当前业务操作的账号是否管理了多种身份,如果没有管理多种身份的话,我们会完成身份的登录并进行业务操作。如果该账号管理了多种身份,就需要将本次业务需要处理的请求放入待切换身份列表,并发送驱动账户待切换身份列表执行的消息,交由身份切换管理机制去处理,身份切换管理机制监听驱动账户待切换身份列表执行的消息后,会获取账户下的待切换身份列表,按照身份切换管理机制进行账号身份切换,最后将账号身份切换的结果响应到业务端,业务端将在账号身份保护期间内尽可能的完成业务的处理。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的较佳实施例而已,并非对本申请做任何形式上的限制,任何熟悉本专业的技术人员,在不脱离本申请技术方案的范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本申请技术方案的范围内。
Claims (6)
1.一种基于Java实现同一账户多种身份在高并发场景中的管理方法,其特征在于,包括以下步骤:
S1:业务端发起账户身份切换请求后,将账户身份切换请求放入账户待切换身份任务列表中;
S2:然后发动驱动账户待切换身份列表执行的信息;
S3:服务端通过监听驱动账户待切换身份列表执行的消息,获取账户下的待切换身份列表;
S4:判断待切换身份列表是否不为空,如为空,则发送演示驱动账户待切换身份列表执行的消息,然后处理结束;若不为空,则获取账户下的待切换身份列表中时间最早的一个账户切换身份请求;
S5:设置账户身份切换保护时间,进行账户身份切换;
S6:然后判断账户身份是否切换成功,若切换成功后广播通知账户身份切换结果,然后移除账户下待切换身份列表中的记录;若账户身份切换不成功,则清空账户身份切换保护时间,然后广播通知账户身份切换结果,移除账户下待切换身份列表中的记录;
S7:处理结束。
2.根据权利要求1所述的基于Java实现同一账户多种身份在高并发场景中的管理方法,其特征在于,所述账户身份为根据预设多种账户身份。
3.根据权利要求1所述的基于Java实现同一账户多种身份在高并发场景中的管理方法,其特征在于,发动驱动账户待切换身份列表执行的信息从账户身份待切换列表按照请求时间顺序执行。
4.根据权利要求1所述的基于Java实现同一账户多种身份在高并发场景中的管理方法,其特征在于,账户身份切换保护时间用于操作的响应结果是异步的。
5.根据权利要求1所述的基于Java实现同一账户多种身份在高并发场景中的管理方法,其特征在于,该管理方法用于操作的账户系统是一账户多身份,且不支持多账户身份同时在线的账户系统。
6.根据权利要求1所述的基于Java实现同一账户多种身份在高并发场景中的管理方法,其特征在于,该管理方法采用的语言为Java语言。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311490113.XA CN117725567A (zh) | 2023-11-09 | 2023-11-09 | 基于Java实现同一账户多种身份在高并发场景中的管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311490113.XA CN117725567A (zh) | 2023-11-09 | 2023-11-09 | 基于Java实现同一账户多种身份在高并发场景中的管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117725567A true CN117725567A (zh) | 2024-03-19 |
Family
ID=90206097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311490113.XA Pending CN117725567A (zh) | 2023-11-09 | 2023-11-09 | 基于Java实现同一账户多种身份在高并发场景中的管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117725567A (zh) |
-
2023
- 2023-11-09 CN CN202311490113.XA patent/CN117725567A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108563502B (zh) | 一种任务调度方法和装置 | |
CN112099935B (zh) | 一种任务处理方法及装置 | |
CN107623731B (zh) | 一种任务调度方法、客户端、服务集群及系统 | |
CN111818117A (zh) | 数据更新的方法、装置、存储介质及电子设备 | |
CN109144748B (zh) | 一种服务器、分布式服务器集群及其状态驱动方法 | |
CN114138500B (zh) | 资源调度系统及方法 | |
US20170078049A1 (en) | Freshness-sensitive message delivery | |
CN111611057B (zh) | 分布式重试方法、装置、电子设备和存储介质 | |
JP2000194678A (ja) | クラスタコンピュ―タシステムにおける高度に利用可能な非同期i/o | |
CN111210340B (zh) | 一种自动任务处理方法、装置、服务器及存储介质 | |
CN110798339A (zh) | 一种基于分布式任务调度框架的任务容灾方法 | |
CN111198753A (zh) | 任务调度方法和装置 | |
CN111694645B (zh) | 分布式任务调度系统中任务处理方法及相关装置 | |
CN117725567A (zh) | 基于Java实现同一账户多种身份在高并发场景中的管理方法 | |
CN112600842A (zh) | 集群shell方法、装置、电子设备及计算机可读存储介质 | |
CN114328156B (zh) | 协议端口的健康检测方法、装置、设备及可读存储介质 | |
CN110515991A (zh) | 批量配送文件的收集方法及装置、存储介质、终端 | |
CN112596761B (zh) | 服务的更新发布方法、装置及相关设备 | |
CN114968636A (zh) | 一种故障处理的方法和装置 | |
CN104169882A (zh) | 通信系统 | |
CN111163117B (zh) | 一种基于Zookeeper的对等式调度方法和装置 | |
CN112231601A (zh) | 链接管理方法、装置、设备及计算机存储介质 | |
WO2011131065A1 (zh) | 一种网络管理系统及数据采集方法 | |
CN115001956B (zh) | 服务器集群的运行方法、装置、设备及存储介质 | |
CN111506337A (zh) | 一种应用软件更新方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |