CN112732760A - 分布式环境下报案号分配方法、服务器及存储介质 - Google Patents
分布式环境下报案号分配方法、服务器及存储介质 Download PDFInfo
- Publication number
- CN112732760A CN112732760A CN202110019225.1A CN202110019225A CN112732760A CN 112732760 A CN112732760 A CN 112732760A CN 202110019225 A CN202110019225 A CN 202110019225A CN 112732760 A CN112732760 A CN 112732760A
- Authority
- CN
- China
- Prior art keywords
- cache database
- report
- initial value
- segment
- numbers
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000009826 distribution Methods 0.000 title claims description 41
- 230000015654 memory Effects 0.000 claims abstract description 57
- 230000002085 persistent effect Effects 0.000 claims abstract description 38
- 238000004590 computer program Methods 0.000 claims description 21
- 230000036541 health Effects 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 241001026509 Kata Species 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06312—Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/08—Insurance
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Databases & Information Systems (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Marketing (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- Technology Law (AREA)
- Educational Administration (AREA)
- Computational Linguistics (AREA)
- Game Theory and Decision Science (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供了一种分布式环境下报案号分配方法、服务器及存储介质,该方法包括:在接收到客户端发起的医保报案请求时,为缓存数据库加悲观锁;确认所述缓存数据库中当前号段剩余的报案号是否低于设定阈值;当所述报案号低于所述设定阈值时,从持久化存储器中获取下一号段的初始值;根据所述初始值生成所述下一号段的报案号,并缓存至所述缓存数据库;根据所述下一号段的结束值生成所述下一号段的下一号段的初始值,并将其存入所述持久化存储器;解除所述缓存数据库的悲观锁;从所述缓存数据库中按序获取报案号,并返回给所述客户端。本说明书实施例可以降低或避免健康险意外医保报销系统出现取号重复的问题。
Description
技术领域
本说明书涉及分布式环境下的数据处理技术领域,尤其是涉及一种分布式环境下报案号分配方法、服务器及存储介质。
背景技术
鉴于分布式系统的各种优势,目前很多业务系统(尤其是大型的业务系统)大都都为分布式业务系统。在分布式业务系统环境下(以下简称分布式环境),一般会涉及到为用户分配业务号的场景。例如,以健康险意外医保报销系统为例,当用户通过客户端发起意外医保报销服务请求时,健康险意外医保报销系统会为该用户分配一个当日的报案号。为了提高报案号分配效率,现有的健康险意外医保报销系统一般会预先生成当日的报案号放入缓存,以供健康险意外医保报销系统的报案号分配服务器集群获取并分配给用户。然而,在高并发场景下,可能会出现多个报案号分配服务器并发竞争同一个报案号,从而出现取号重复的问题。
发明内容
本说明书实施例的目的在于提供一种分布式环境下报案号分配方法、服务器及存储介质,以降低或避免健康险意外医保报销系统出现取号重复的问题。
为达到上述目的,一方面,本说明书实施例提供了一种分布式环境下报案号分配服务器包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行如下步骤:
在接收到客户端发起的医保报案请求时,为缓存数据库加悲观锁;
确认所述缓存数据库中当前号段剩余的报案号是否低于设定阈值;
当所述报案号低于所述设定阈值时,从持久化存储器中获取下一号段的初始值;
根据所述初始值生成所述下一号段的报案号,并缓存至所述缓存数据库;
根据所述下一号段的结束值生成所述下一号段的下一号段的初始值,并将其存入所述持久化存储器;
解除所述缓存数据库的悲观锁;
从所述缓存数据库中按序获取报案号,并返回给所述客户端。
在本说明书一实施例中,所述为缓存数据库加悲观锁,包括:
为所述缓存数据库中,与所述医保报案请求所归属的key值对应的报案号数据加悲观锁。
在本说明书一实施例中,所述从所述缓存数据库中按序获取报案号,包括:
根据所述医保报案请求所归属的key值从所述缓存数据库中按序获取报案号。
在本说明书一实施例中,所述计算机程序被所述处理器运行时,执行的步骤还包括:
当所述缓存数据库中当前号段剩余的报案号不低于所述设定阈值时,直接解除所述缓存数据库的悲观锁。
在本说明书一实施例中,所述根据所述下一号段的结束值生成所述下一号段的下一号段的初始值,包括:
将所述下一号段的结束值+1作为所述下一号段的下一号段的初始值。
在本说明书一实施例中,所述缓存数据库为持久化缓存数据库。
在本说明书一实施例中,所述缓存数据库包括Redis缓存数据库集群。
在本说明书一实施例中,所述持久化存储器包括Mysql主从数据库。
另一方面,本说明书实施例还提供了一种分布式环境下报案号分配方法,包括:
在接收到客户端发起的医保报案请求时,为缓存数据库加悲观锁;
确认所述缓存数据库中当前号段剩余的报案号是否低于设定阈值;
当所述报案号低于所述设定阈值时,从持久化存储器中获取下一号段的初始值;
根据所述初始值生成所述下一号段的报案号,并缓存至所述缓存数据库;
根据所述下一号段的结束值生成所述下一号段的下一号段的初始值,并将其存入所述持久化存储器;
解除所述缓存数据库的悲观锁;
从所述缓存数据库中按序获取报案号,并返回给所述客户端。
另一方面,本说明书实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被报案号分配服务器的处理器运行时,执行如下步骤:
在接收到客户端发起的医保报案请求时,为缓存数据库加悲观锁;
确认所述缓存数据库中当前号段剩余的报案号是否低于设定阈值;
当所述报案号低于所述设定阈值时,从持久化存储器中获取下一号段的初始值;
根据所述初始值生成所述下一号段的报案号,并缓存至所述缓存数据库;
根据所述下一号段的结束值生成所述下一号段的下一号段的初始值,并将其存入所述持久化存储器;
解除所述缓存数据库的悲观锁;
从所述缓存数据库中按序获取报案号,并返回给所述客户端。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中,只要其中任意一个报案号分配服务器为缓存数据库加悲观锁后,其他的报案号分配服务器则无法执行写操作,直至该报案号分配服务器解除了缓存数据库的悲观锁。因此,本说明书的实施例可以有效地降低或避免多个报案号分配服务器并发竞争同一个报案号,而可能导致的取号重复(即两个或两个以上的报案号分配服务器取了同一个报案号)。而且,这种加悲观锁的操作,还可防止在报案号低于设定阈值时,多个报案号分配服务器并发生成下一批报案号,从而也避免了健康险意外医保报销系统生成重复的报案号。
不仅如此,在本说明书的实施例中,报案号是逐批次生成并缓存至缓存数据库,而不是一次生成全量报案号并缓存至缓存数据库。在此情况下,当缓存数据库故障时,缓存数据库内剩余的报案号一般会丢失掉,但由于持久化存储器始终保存有下一号段的初始值,当缓存数据库故障恢复并重启后,报案号分配服务器还可以根据持久化存储器保存的下一号段的初始值,再生成一批新的报案号补充至当缓存数据库。如此,虽然逐批次生成报案号并缓存至缓存数据库会降低一点效率,但是却有效避免了因缓存数据库故障而导致报案号全部丢失的情况。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了本说明书一些实施例中分布式环境下健康险意外医保报销系统的结构示意图;
图2示出了本说明书一些实施例中分布式环境下报案号分配方法的流程图;
图3示出了本说明书另一些实施例分布式环境下健康险意外医保报销系统的结构示意图;
图4示出了本说明书一些实施例报案号分配服务器的结构框图。
【附图标记说明】
100、报案号分配服务器;
102、报案号分配服务器;
104、处理器;
106、存储器;
108、驱动机构;
110、输入/输出模块;
112、输入设备;
114、输出设备;
116、呈现设备;
118、图形用户接口;
120、网络接口;
122、通信链路;
124、通信总线;
200、缓存数据库;
200a、Redis缓存数据库集群;
300、持久化存储器;
300a、Mysql主从数据库;
400、客户端。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
图1中示出了本说明书一些实施例的分布式环境下健康险意外医保报销系统的系统结构。该系统可以包括:多个分布式环境下报案号分配服务器100(以下简称报案号分配服务器100,多个报案号分配服务器100形成了报案号分配服务集群)、一个或多个缓存数据库200、以及一个或多个持久化存储器300。其中,每个分布式环境下报案号分配服务器100可以用于:在接收到客户端发起的医保报案请求时,为缓存数据库200加悲观锁;确认所述缓存数据库200中当前号段剩余的报案号是否低于设定阈值;当所述报案号低于所述设定阈值时,从持久化存储器300中获取下一号段的初始值;根据所述初始值生成所述下一号段的报案号,并缓存至所述缓存数据库200;根据所述下一号段的结束值生成所述下一号段的下一号段的初始值,并将其存入所述持久化存储器300;解除所述缓存数据库200的悲观锁;从所述缓存数据库200中按序获取报案号,并返回给所述客户端。
本说明书的实施例中的分布式环境是指健康险意外医保报销系统的分布式部署环境。本说明书一些实施例中,所述分布式部署环境可以为基于应用容器引擎的分布式部署环境,以利于支持高并发场景。其中,所述应用容器引擎例如可以为Docker、kubernetes、kata、singularty、pouch等。
在本说明书的实施例中,只要其中任意一个报案号分配服务器100为缓存数据库200加悲观锁后,其他的报案号分配服务器100则无法执行写操作,直至该报案号分配服务器解除了缓存数据库200的悲观锁。因此,本说明书的实施例可以有效地降低或避免多个报案号分配服务器100并发竞争同一个报案号,而可能导致的取号重复(即两个或两个以上的报案号分配服务器100取了同一个报案号)。而且,这种加悲观锁的操作,还可防止在报案号低于设定阈值时,多个报案号分配服务器100并发生成下一批报案号,从而也避免了健康险意外医保报销系统生成重复的报案号。
不仅如此,在本说明书的实施例中,报案号是逐批次生成并缓存至缓存数据库200,而不是一次生成全量报案号并缓存至缓存数据库200。在此情况下,当缓存数据库200故障时,缓存数据库200内剩余的报案号一般会丢失掉,但由于持久化存储器300始终保存有下一号段的初始值,当缓存数据库200故障恢复并重启后,报案号分配服务器100还可以根据持久化存储器300保存的下一号段的初始值,再生成一批新的报案号补充至当缓存数据库200。如此,虽然逐批次生成报案号并缓存至缓存数据库200会降低一点效率,但是却有效避免了因缓存数据库200故障而导致报案号全部丢失的情况。
本说明书的实施例还提供了分布式环境下报案号分配方法的实施例,其可以应用分布式环境下健康险意外医保报销系统中的报案号分配服务器侧。参考图2所示,在本说明书一些实施例中,所述分布式环境下报案号分配方法可以包括以下步骤:
S201、接收客户端发起的医保报案请求。
在本说明书一实施例中,当需要申请健康险意外医保报销服务时,用户可以通过客户端向报案号分配服务器发起医保报案请求。
S202、从所述缓存数据库中按序获取报案号,并返回给所述客户端。
在本说明书一实施例中,响应于所述医保报案请求,报案号分配服务器可以根据所述医保报案请求所归属的key值从缓存数据库中按序获取报案号。当报案号分配服务器从缓存数据库中获取到报案号时,可以据此形成医保报案响应,并将携带报案号的医保报案响应返回给客户端。
S203、在接收到客户端发起的医保报案请求时,为缓存数据库加悲观锁。
当接收到医保报案请求时,报案号分配服务器为缓存数据库加悲观锁,以防止并发获取报案号及在报案号低于设定阈值时并发生成报案号。
在本说明书的实施例中,悲观锁顾名思义就是很悲观,每次去拿数据的时候都认为别的报案号分配服务器会修改数据,所以每次在拿数据的时候报案号分配服务器都会上锁,这样别的报案号分配服务器想拿这个数据就会被阻塞(block),直到该报案号分配服务器解除上锁并释放对锁的控制权后,其他别的报案号分配服务器才可能拿到锁,并执行数据修改。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据),因此,在本说明书的实施例中采用了缓存数据库来缓存报案号,以保证当报案号分配服务器对缓存数据库加锁时,能真正保证数据访问的排他性。
在本说明书一实施例中,报案号分配服务器可以异步调用缓存数据库执行select…for update语句(行级锁住,其他事务不能对其进行更新(update)、插入(insert)和删除(delete)语句),从而实现对缓存数据库加悲观锁。
结合图3所示,在本说明书一实施例中,所述客户端400可以为台式电脑、平板电脑、笔记本电脑、智能手机、数字助理、智能可穿戴设备等。其中,智能可穿戴设备可以包括智能手环、智能手表、智能眼镜、智能头盔等。当然,所述客户端并不限于上述具有一定实体的电子设备,其还可以为运行于上述电子设备中的软体。
在本说明书一实施例中,报案号可以是以业务地区和日期作为key,并以业务序号作为value的键值对格式,即报案号可表示为:key(业务地区+日期)+value(顺序号)。如此,使得报案号具有带有了业务含义。每个不同的业务地区,每日的报案号均可以从1开始计数。如此,缓存数据库可以针对不同的提供不用的报案号列表,例如下表1所示。
表1
key | value |
key 1(业务地区1+日期) | list1(业务序号1、业务序号2、…) |
key 2(业务地区2+日期) | list2(业务序号1、业务序号2、…) |
key 3(业务地区3+日期) | list3(业务序号1、业务序号2、…) |
…… | …… |
在此情况下,所述为缓存数据库加悲观锁可以是:为所述缓存数据库中,与所述医保报案请求所归属的key值对应的报案号数据加悲观锁。例如,以上表1为例,当医保报案请求归属于业务地区1时,可以仅对key 1所对应行的数据加悲观锁,而不是对整个表1加悲观锁,以免对其他的报案号分配服务器还可以对表1中其他行的数据执行写操作。
结合图3所示,在本说明书一实施例中,缓存数据库可以为Redis缓存数据库集群200a,以免单个Redis数据库缓存宕机所造成的服务中断,从而有利于提高系统的稳定性。
S204、确认所述缓存数据库中当前号段剩余的报案号是否低于设定阈值。
在处理医保报案请求的过程中,报案号分配服务器还可以并行地确认所述缓存数据库中当前号段剩余的报案号是否低于设定阈值,以便于在低于设定阈值时及时补充下一批号源至缓存数据库中,从而有利于避免缓存数据库中的报案号被取空而导致影响业务的正常运行。
在本说明书一实施例中,设定阈值可以为一批号源的指定百分比(例如20%等),根据可以根据实际需要适当选择。例如,在一示例性实施例中,若每一批号源有1000个,按20%的比例,则阈值可以设为200个,即当缓存数据库中的报案号低于200个时,报案号分配服务器就会进行补号。
S205、当所述报案号低于所述设定阈值时,从持久化存储器中获取下一号段的初始值。
在本说明书的实施例中,持久化存储器可以永久性的保存用于生成下一号段的初始值。如此,当需要补充下一批号源至缓存数据库时,可以先从持久化存储器中读取出下一号段的初始值。
结合图3所示,在本说明书一实施例中,持久化存储器可以为Mysql主从数据库300a。如此,可以实现读取下一号段的初始值,以及写入下一号段的初始值的读写分离,从而有利于提高处理效率。
S206、根据所述初始值生成所述下一号段的报案号,并缓存至所述缓存数据库。
在本说明书的实施例中,根据所述初始值生成所述下一号段的报案号可以是指:生成一批以初始值为起点的报案号。例如,以一批报案号数量为1000为例,若初始值为1001,则可以根据1001生成:第1001~第2000这一千个报案号。
在本说明书一实施例中,可以每次生成的报案号数量可以为固定值(例如每次生成1000个)。对于上述的业务地区分区情况,对于同一个业务地区(例如上表1中的业务地区1)而言,每次生成的报案号数量可以为固定值(例如上表1中的业务地区1每次生成的报案号数量可以为1000个);对于不同业务地区(例如上表1中的业务地区1和业务地区2)而言,每次生成的报案号数量可以不同(例如上表1中的业务地区1每次生成的报案号数量可以为1000个,而上表1中的业务地区2每次生成的报案号数量可以为1200个)。
在本说明书的实施例中,缓存数据库中的报案号可以是按照先入先出队列进行排序,报案号分配服务器每次取号时,都是从报案号队列的队首获取报案号。相应的,报案号分配服务器每次存号时,都是从报案号队列的队尾,将生成的下一号段的报案号按序加入报案号队列中。如此,可以有利于保证报案号的按序分配。
S207、根据所述下一号段的结束值生成所述下一号段的下一号段的初始值,并将其存入所述持久化存储器。
在本说明书的实施例中,为了方便下一批次的号源生成,在根据所述初始值生成所述下一号段的报案号,并缓存至所述缓存数据库之后,还需要更新所述持久化存储器中的初始值。即可以根据所述下一号段的结束值生成所述下一号段的下一号段的初始值,具体而言,可以将所述下一号段的结束值+1作为所述下一号段的下一号段的初始值,并将其存入所述持久化存储器。例如,若初始值为1001,在根据1001生成:第1001~第2000这一千个报案号后,可以将2000+1(即2001)作为第1001~第2000对应的下一号段的初始值存入久化存储器。
在本说明书一实施例中,对于上述的业务地区分区情况,则每个业务地区对应的下一号段的初始值可以如下表2所示。
表2
key | 下一号段初始值 |
key 1(业务地区1+日期) | 下一号段初始值1001 |
key 2(业务地区2+日期) | 下一号段初始值2001 |
key 3(业务地区3+日期) | 下一号段初始值4001 |
…… | …… |
S208、解除所述缓存数据库的悲观锁。
在本说明书的实施例中,在根据所述初始值生成所述下一号段的报案号缓存至所述缓存数据库,以及根据所述下一号段的结束值生成所述下一号段的下一号段的初始值存入所述持久化存储器之后,报案号分配服务器可以解除所述缓存数据库的悲观锁,以便于其他报案号分配服务器可以进行取号等操作。
当然,在本说明书的实施例中,在为缓存数据库加悲观锁后,如果报案号分配服务器从缓存数据库中获取到了报案号,且所述缓存数据库中当前号段剩余的报案号不低于设定阈值,则所述缓存数据库此时也可以解除所述缓存数据库的悲观锁,以便于其他报案号分配服务器可以进行取号等操作。
一般地,当事务提交后缓存数据库可自动释放悲观锁。因此,在本说明书的实施例中,解除所述缓存数据库的悲观锁可以是指:报案号分配服务器提交事务。其中,提交事务是指完成了新一批号源补充,并完成了下一号段的初始值更新后的确认。
在上文已经阐明,当缓存数据库故障时,缓存数据库内剩余的报案号一般会丢失掉,但由于持久化存储器始终保存有下一号段的初始值,当缓存数据库故障恢复并重启后,报案号分配服务器还可以根据持久化存储器保存的下一号段的初始值,再生成一批新的报案号补充至当缓存数据库。如此,虽然逐批次生成报案号并缓存至缓存数据库会降低一点效率,但是却有效避免了因缓存数据库故障而导致报案号全部丢失的情况。在一些情况下,如果不能容忍缓存数据库丢失一部分报案号而导致断号,则缓存数据库可以采用持久化缓存数据库。例如以Redis缓存数据库为例,可以启用Redis缓存数据库的持久化功能,定期将Redis缓存数据库缓存的报案号以某种形式(数据或命令)从内存保存到硬盘,当下次Redis缓存数据库重启时,可以从硬盘中恢复数据到Redis缓存数据库。但是,这种持久化在一定程度上会影响Redis缓存数据库的性能。
上述的断号是指,当缓存数据库因故障重启后,其内原先剩余的报案号全部丢失,而重新补充至缓存数据库中的报案号是从下一批报案号开始的,而不是从丢失的报案号开始的。例如,缓存数据库在剩余第799~第1000时故障重启,则下一号段的初始值为1001,则重新补充至缓存数据库中的报案号是从第1001开始的,而不是从第799开始。
在本说明书另一些实施例中,所述分布式环境下报案号分配方法还可以包括以下步骤:
报案号分配服务器定期检查缓存数据库中剩余的报案号是否超过设定的生命周期;当所述缓存数据库中剩余的报案号超过设定的生命周期时,报案号分配服务器将其进行销毁处理,以降低缓存数据库的无效存储。其中,设定的生命周期一般为24小时,即当天有效。在实际实施例时,当系统不是24小时提供时,设定的生命周期也可以适应性修改。
虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
在本说明书一些实施例中,如图4所示,还提供一种报案号分配服务器102。报案号分配服务器102可以包括一个或多个处理器104,诸如一个或多个中央处理单元(CPU)或图形处理器(GPU),每个处理单元可以实现一个或多个硬件线程。报案号分配服务器102还可以包括任何存储器106,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施方式中,存储器106上并可在处理器104上运行的计算机程序,所述计算机程序被所述处理器104运行时,可以执行根据上述方法的指令。非限制性的,比如,存储器106可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示报案号分配服务器102的固定或可移除部件。在一种情况下,当处理器104执行被存储在任何存储器或存储器的组合中的相关联的指令时,报案号分配服务器102可以执行相关联指令的任一操作。报案号分配服务器102还包括用于与任何存储器交互的一个或多个驱动机构108,诸如硬盘驱动机构、光盘驱动机构等。
报案号分配服务器102还可以包括输入/输出模块110(I/O),其用于接收各种输入(经由输入设备112)和用于提供各种输出(经由输出设备114)。一个具体输出机构可以包括呈现设备116和相关联的图形用户接口118(GUI)。在其他实施例中,还可以不包括输入/输出模块110(I/O)、输入设备112以及输出设备114,仅作为网络中的一台报案号分配服务器。报案号分配服务器102还可以包括一个或多个网络接口120,其用于经由一个或多个通信链路122与其他设备交换数据。一个或多个通信总线124将上文所描述的部件耦合在一起。
通信链路122可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路122可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本申请是参照本说明书一些实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理器的处理器以产生一个机器,使得通过计算机或其他可编程数据处理器的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理器以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理器上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,报案号分配服务器包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被报案号分配服务器访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理器来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种分布式环境下报案号分配服务器,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时,执行如下步骤:
在接收到客户端发起的医保报案请求时,为缓存数据库加悲观锁;
确认所述缓存数据库中当前号段剩余的报案号是否低于设定阈值;
当所述报案号低于所述设定阈值时,从持久化存储器中获取下一号段的初始值;
根据所述初始值生成所述下一号段的报案号,并缓存至所述缓存数据库;
根据所述下一号段的结束值生成所述下一号段的下一号段的初始值,并将其存入所述持久化存储器;
解除所述缓存数据库的悲观锁;
从所述缓存数据库中按序获取报案号,并返回给所述客户端。
2.如权利要求1所述的分布式环境下报案号分配服务器,其特征在于,所述为缓存数据库加悲观锁,包括:
为所述缓存数据库中,与所述医保报案请求所归属的key值对应的报案号数据加悲观锁。
3.如权利要求2所述的分布式环境下报案号分配服务器,其特征在于,所述从所述缓存数据库中按序获取报案号,包括:
根据所述医保报案请求所归属的key值从所述缓存数据库中按序获取报案号。
4.如权利要求1所述的分布式环境下报案号分配服务器,其特征在于,所述计算机程序被所述处理器运行时,执行的步骤还包括:
当所述缓存数据库中当前号段剩余的报案号不低于所述设定阈值时,直接解除所述缓存数据库的悲观锁。
5.如权利要求1所述的分布式环境下报案号分配服务器,其特征在于,所述根据所述下一号段的结束值生成所述下一号段的下一号段的初始值,包括:
将所述下一号段的结束值+1作为所述下一号段的下一号段的初始值。
6.如权利要求1所述的分布式环境下报案号分配服务器,其特征在于,所述缓存数据库为持久化缓存数据库。
7.如权利要求1所述的分布式环境下报案号分配服务器,其特征在于,所述缓存数据库包括Redis缓存数据库集群。
8.如权利要求1所述的分布式环境下报案号分配服务器,其特征在于,所述持久化存储器包括Mysql主从数据库。
9.一种分布式环境下报案号分配方法,其特征在于,包括:在接收到客户端发起的医保报案请求时,为缓存数据库加悲观锁;
确认所述缓存数据库中当前号段剩余的报案号是否低于设定阈值;
当所述报案号低于所述设定阈值时,从持久化存储器中获取下一号段的初始值;
根据所述初始值生成所述下一号段的报案号,并缓存至所述缓存数据库;
根据所述下一号段的结束值生成所述下一号段的下一号段的初始值,并将其存入所述持久化存储器;
解除所述缓存数据库的悲观锁;
从所述缓存数据库中按序获取报案号,并返回给所述客户端。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被报案号分配服务器的处理器运行时,执行如下步骤:
在接收到客户端发起的医保报案请求时,为缓存数据库加悲观锁;
确认所述缓存数据库中当前号段剩余的报案号是否低于设定阈值;
当所述报案号低于所述设定阈值时,从持久化存储器中获取下一号段的初始值;
根据所述初始值生成所述下一号段的报案号,并缓存至所述缓存数据库;
根据所述下一号段的结束值生成所述下一号段的下一号段的初始值,并将其存入所述持久化存储器;
解除所述缓存数据库的悲观锁;
从所述缓存数据库中按序获取报案号,并返回给所述客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110019225.1A CN112732760A (zh) | 2021-01-07 | 2021-01-07 | 分布式环境下报案号分配方法、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110019225.1A CN112732760A (zh) | 2021-01-07 | 2021-01-07 | 分布式环境下报案号分配方法、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112732760A true CN112732760A (zh) | 2021-04-30 |
Family
ID=75591126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110019225.1A Pending CN112732760A (zh) | 2021-01-07 | 2021-01-07 | 分布式环境下报案号分配方法、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732760A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106506663A (zh) * | 2016-11-22 | 2017-03-15 | 北京科摩仕捷科技有限公司 | 一种号码分配方法、服务器及系统 |
US20180074919A1 (en) * | 2016-09-09 | 2018-03-15 | Sap Se | Hybrid Database Concurrent Transaction Control |
CN109165712A (zh) * | 2018-08-01 | 2019-01-08 | 广州唯品会信息科技有限公司 | 分布式分期号的生成方法、装置和计算机存储介质 |
CN109388626A (zh) * | 2017-08-04 | 2019-02-26 | 北京京东尚科信息技术有限公司 | 用于向业务分配编号的方法和装置 |
CN110515956A (zh) * | 2019-09-02 | 2019-11-29 | 中国工商银行股份有限公司 | 序列号获取方法、装置、系统、电子设备及存储介质 |
-
2021
- 2021-01-07 CN CN202110019225.1A patent/CN112732760A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180074919A1 (en) * | 2016-09-09 | 2018-03-15 | Sap Se | Hybrid Database Concurrent Transaction Control |
CN106506663A (zh) * | 2016-11-22 | 2017-03-15 | 北京科摩仕捷科技有限公司 | 一种号码分配方法、服务器及系统 |
CN109388626A (zh) * | 2017-08-04 | 2019-02-26 | 北京京东尚科信息技术有限公司 | 用于向业务分配编号的方法和装置 |
CN109165712A (zh) * | 2018-08-01 | 2019-01-08 | 广州唯品会信息科技有限公司 | 分布式分期号的生成方法、装置和计算机存储介质 |
CN110515956A (zh) * | 2019-09-02 | 2019-11-29 | 中国工商银行股份有限公司 | 序列号获取方法、装置、系统、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
李辉: "数据库系统原理及MySQL应用教程 第2版", 北京:机械工业出版社, pages: 341 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509462B (zh) | 一种同步活动事务表的方法及装置 | |
CN109271450B (zh) | 数据库同步方法、装置、服务器和存储介质 | |
CN109739935B (zh) | 数据读取方法、装置、电子设备以及存储介质 | |
CN108804112B (zh) | 一种区块链落账处理方法及系统 | |
US9092475B2 (en) | Database log parallelization | |
US9069704B2 (en) | Database log replay parallelization | |
US9104471B2 (en) | Transaction log management | |
CN104793988A (zh) | 跨数据库分布式事务的实现方法和装置 | |
CN105989123A (zh) | 一种数据同步方法、装置和系统 | |
WO2019037617A1 (zh) | 数据事务处理方法、装置以及电子设备 | |
US11561939B2 (en) | Iterative data processing | |
EP3480705B1 (en) | Database data modification request processing method and apparatus | |
US11226876B2 (en) | Non-blocking backup in a log replay node for tertiary initialization | |
JP6432805B2 (ja) | 区分化インメモリデータセットのためのredoロギング | |
CN110968603A (zh) | 一种数据访问方法及装置 | |
US20220276990A1 (en) | Light weight redundancy tool for performing transactions | |
CN110121694B (zh) | 一种日志管理方法、服务器和数据库系统 | |
CN114780285A (zh) | 区块链数据恢复方法及装置、电子设备 | |
CN108351801A (zh) | 多版本移除管理器 | |
CN115774754A (zh) | 基于分布式事务的元数据管理方法、装置、设备及介质 | |
CN112732760A (zh) | 分布式环境下报案号分配方法、服务器及存储介质 | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
CN115587099A (zh) | 一种分布式的表锁应用方法、装置、存储介质及电子设备 | |
CN115629901A (zh) | 日志回放方法及装置、数据恢复方法及装置、电子设备 | |
JP2023546818A (ja) | データベースシステムのトランザクション処理方法、装置、電子機器、及びコンピュータプログラム |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210430 |