掌桥专利:专业的专利平台
掌桥专利
首页

一种分布式计数系统和计数方法

文献发布时间:2024-04-18 19:52:40



技术领域

本发明涉及分布式处理技术领域,具体涉及一种分布式计数系统和计数方法。

背景技术

计数器被很多应用系统广泛使用,分布式系统也相应用到计数器以实现相关后续业务的触发。分布式系统中由于各节点分布执行业务功能,不同的节点均会对某计数结果产生影响,相关方案中一般采用共享计数器的方式来同步整个分布式系统中设定计数器的计数值。采用共享计数器的方式,势必需要在各应用系统中引入其他服务组件来实现多个分布式节点对共享计数器的可靠访问或更新,由此增加了整体系统的不稳定性。

对于具有极高可用性要求的分布式应用系统而言,有待提出新的方案,以更加稳定可靠地实现分布式系统中的计数器方案。

发明内容

本公开实施例提供一种分布式计数系统和计数方法,由各分布式业务节点独立计数并写入日志,采用日志抽取的方式获得各节点的分计数器数值,再进一步确定整体分布式系统中的总计数数值,能够有效克服多节点共享计数器方案引起的整体系统不稳定风险。

本公开实施例提供一种分布式计数系统,包括:若干个分布式业务节点、日志节点和计数装置;

各所述分布式业务节点设置为:在满足预设的分计数器数值写入条件的情况下,将所述分计数器的最新数值写入所述日志节点上的日志文件中;

所述计数装置设置为:从所述日志文件中分别获取各所述分布式业务节点的分计数器数值;根据各所述分计数器数值,确定预设计数器在分布式业务系统中的总计数数值。

本公开实施还例提供一种分布式计数方法,包括:

各分布式业务节点在满足预设的分计数器数值写入条件的情况下,将所述分计数器的最新数值写入日志节点上的日志文件中;

计数装置从所述日志文件中分别获取各所述分布式业务节点的分计数器数值;根据各所述分计数器数值,确定预设计数器在分布式业务系统中的总计数数值。

在阅读并理解了附图和详细描述后,可以明白其他方面。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1为本公开实施例中一种分布式计数系统的结构示意图;

图2为本公开实施例中另一种分布式计数系统的结构示意图;

图3为本公开实施例中一种分布式计数方法的流程图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。

另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

本公开实施例提供一种分布式计数系统,如图1所示,包括:若干个分布式业务节点10、日志节点20和计数装置30;

各所述分布式业务节点10设置为:在满足预设的分计数器数值写入条件的情况下,将所述分计数器的最新数值写入所述日志节点20上的日志文件中;

所述计数装置30设置为:从所述日志文件中分别获取各所述分布式业务节点10的分计数器数值;根据各所述分计数器数值,确定预设计数器在分布式业务系统中的总计数数值。

需要说明的是,分布式系统中包括一个或多个业务节点,业务节点中的应用系统进行本地的分计数器的计数操作。应用系统对本地分计数器的操作均为内存操作,无需引入其他组件。在计数后,由分计数器归属的应用系统实时地,或周期性地将自身系统中的分计数器的最新数值按预设的日志规范写入日志节点20上的日志文件中。本公开实施例中应用系统可以和应用功能模块等效替换,不特别限定是应用系统还是应用模块。

其中,每一个业务节点上运行的应用系统(或模块)包括一个或多个,每一个应用系统(或模块)操作一个或多个分计数器,每一个应用系统(或模块)所操作的一个或多个分计数器的最新数值被写入一个日志文件,或者,分开写入多个日志文件。

一些示例性实施例中,所述计数装置30从所述日志文件中分别获取各所述分布式业务节点的分计数器数值,包括:采用日志抽取工具从所述日志文件中分别获取各所述分计数器数值。

例如,日志抽取工具为Flume软件,即计数装置30采用Flume从所述日志节点的上的一个或多个日志文件中采集各分计数器数值。

其中,所述日志抽取工具在满足抽取触发条件时执行抽取任务获取一个或多个分计数器数值。

一些示例性实施例中,所述抽取触发条件至少包括以下之一:预设的事件发生;预设的抽取间隔到来。例如,预设抽取间隔30秒,则每隔30秒采用日志抽取工具从节点的日志文件中抽取全部或增量的分计数器数值信息。

需要说明的是,Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方用于收集数据。采用Flume根据设定的日志文件以及日志写入规范,能够准确地收集目标数据。本公开实施例方案中,利用Flume收集节点中日志文件中写入的一个或多个分计数器的数值。根据Flume的相关配置要求配置抽取任务后,即可实现对分计数器数值的收集,具体的配置方式不是本申请限定或保护的范围。可选地,还可以选用其它日志抽取工具软件替换Flume,来进行日志文件中分计数器数值信息的抽取,不限于特定的抽取工具。

一些示例性实施例中,所述日志节点20包括一个或多个。业务节点10可以根据系统配置分别写入各自对应的日志节点20上的日志文件。

一些示例性实施例中,所述分计数器数值写入条件包括以下一种或多种:

所述分计数器数值发生变化;

预设的写入间隔到来;

分布式业务节点上预设事件发生。

例如,各业务节点每隔2秒将内存中各分计数器的最新数值写入日志节点的日志文件中。例如,分布式业务节点上某一统计数据达到设定数量时写入最新计数数值,等等。需要说明的是,不同的业务节点,以及同一业务节点中不同的应用各自的分计数器数值写入条件可以相同也可以不同,写入间隔可以相同或不同,不限于特定的方式。

一些示例性实施例中,预设计数器包括一个或多个。

一些示例性实施例中,所述计数装置30还设置为,根据预设计数器与多个分计数器的对应关系,基于所获取的业务节点的分计数器数值,确定所述预设计数器在整体分布式系统中的总计数数值。

例如,分布式系统包括3个业务节点:节点1,节点2,节点3;节点1上运行的应用系统操作第一消费者计数器的分计数器1;节点2上运行的应用系统操作第一消费者计数器的分计数器1,还操作第二消费者计数器的分计数器2;节点3上运行的应用系统操作第一消费者计数器的分计数器1,还操作第二消费者计数器的分计数器2;整个分布式系统预设计数器包括:第一消费者计数器和第二消费者计数器。则,整个分布式系统中第一消费者计数器的数值=节点1的第一消费者计数器的分计数器1的数值+节点2的第一消费者计数器的分计数器1的数值+节点3的第一消费者计数器的分计数器1的数值;整个分布式系统中第二消费者计数器的数值=节点2的第二消费者计数器的分计数器2的数值+节点3的第二消费者计数器的分计数器2的数值。

需要说明的是,分布式系统中预设计数器的总计数数值与一个或多个业务节点上分计数器数值的确定关系根据实际计数需求灵活确定,不限于上述示例的具体方式。根据上述示例,本领域技术人员可以知晓对应的确定方式,在此不一一赘述。

一些示例性实施例中,所述系统还包括:搜索服务器40;所述搜索服务器40设置为,保存分计数器信息;还设置为根据搜索条件返回搜索结果。

相应地,所述计数装置还设置为:根据所述预设计数器对应的搜索条件,从所述搜索服务器40中获取搜索结果,根据所述搜索结果确定所述预设计数器在所述分布式业务系统中的总计数数值。

一些示例性实施例中,分计数器信息至少包括:业务节点、计数器标识和最新计数数值。

一些示例性实施例中,所述搜索服务器40为弹性搜索ES(Elastic Search,ES)服务器。即将从日志文件中获取一个或多个分计数器数值上送到ES服务器存储,以用于在确定某预设计数器在所述分布式系统中的总计数数值时,从ES服务器中获取搜索结果后确定。

例如,从3个业务节点中获取并保存到ES服务器上的分计数器信息如下:

节点1,第一消费者计数器的分计数器1,数值1;节点2,第一消费者计数器的分计数器1,数值2,第二消费者计数器的分计数器2,数值3;节点3,第一消费者计数器的分计数器1,数值4,第二消费者计数器的分计数器2,数值5。

搜索条件为“第一消费者计数器的分计数器1”,则从ES服务器获取到的搜索结果为:节点1,第一消费者计数器的分计数器1,数值1;节点2,第一消费者计数器的分计数器1,数值2;节点3,第一消费者计数器的分计数器1,数值4。则进一步根据搜索结果确定第一消费者计数器的总计数数值=数值1+数值2+数值4。

需要说明的是,所述搜索服务器不限于ES服务器,还可以选用其它方案实现的搜索服务器。一些示例性实施例中,数据库服务器也可以作为一种搜索服务器被采用。相应地,所述搜索条件以及搜索结果均与选择的搜索服务器相匹配。上述搜索条件和搜索结果的记载,仅用于示例性说明相关步骤的一种实施,并不对此方面进行限定。搜索服务器相匹配的搜索条件和搜索结果,均由所选用的搜索服务器决定,不属于本申请保护或限定的范围。本领域技术人员根据相关方案实施均可实现本公开实施例所提出的方案。

本公开实施例所提供的分布式计数方案,能够及时准确稳定地进行系统级计数,基于该计数结果进一步实现后续业务功能。例如,计数装置所确定的分布式系统中预设计数器的总计数数值,在满足设定条件时,触发其他业务流程。例如,在网络交易或在线支付系统中,巨大的在线交易量势必采用分布式系统利用多个节点分布式执行相关业务逻辑,各节点独立完成被分派的任务,同一类业务可能被多个节点分布式执行。可以看到该类业务的某项总计数数值受到多个分布式节点的影响,根据本公开实施例提供的计数方法,能够准确及时地确定该类业务的某项总计数数值,以准确及时地触发后续业务流程。例如,根据整体分布式系统中未处理记录的总计数数值进行业务告警;据整体分布式系统中当前批次总完成交易量的总计数数值进行批次交易小结等。本公开实施例提供分布式系统中的计数方案,不限定所确定的计数数值如何进一步使用,本领域技术人员可以根据业务需要实现后续流程。

可以看到,本公开实施例提供的分布式计数系统中,不采用多业务节点共享计数器的方式。减少了分布式业务节点操作共享计数器引起的冲突或不稳定,也减少了为了解决共享计数器的访问冲突可能引起的系统开销。分布式业务节点保持本地操作分计数器并记载日志的方式稳定运行,利用第三方日志抽取工具获取各业务节点的分计数器数值,再汇总得到整个分布式系统中目标计数器的总计数数值。根据本公开实施例提供的计数方案,既保证了分布式系统中预设计数器整体技术的及时性和准确性,又确保了各节点运行的稳定性,减少了共享计数器方案下各节点的操作开销。对于并发量巨大,可用性要求极高的分布式业务系统而言,采用本公开实施例提供的计数方案,具有明显的优势。

一些示例性实施例中,如图2所示,所述分布式业务系统为在线支付系统;

所述若干个分布式业务节点10包括:若干个交易关单业务节点101和若干个终态通知发送节点102;

各所述交易关单业务节点101设置为:在满足第一分计数器数值写入条件的情况下,将已关单交易的累计数量作为关单交易分计数器的最新数值,写入所述日志节点上的日志文件中;

各所述终态通知发送节点102设置为:在满足第二分计数器数值写入条件的情况下,将当前已发送终态通知的累计数量作为终态通知分计数器的最新数值,写入所述日志节点上的日志文件中;第一分计数器数值写入条件与第二分计数器数值写入条件可以相同或不同。

所述计数装置30还设置为:从所述日志文件中分别获取各关单交易分计数器的最新数值,根据各关单交易分计数器的最新数值确定所述在线支付系统的关单交易总数;从所述日志文件中分别获取各终态通知分计数器的最新数值,根据各终态通知分计数器的最新数值确定所述在线支付系统的终态通知发送总数;根据所述关单交易总数和所述终态通知发送总数,确定所述在线支付系统的交易处理情况。

一些示例性实施例中,各所述交易关单业务节点101还设置为:在终态通知延时开关打开的情况下,将生成的与关单交易对应的待发送的终态通知保存到延时发送队列中;在所述延时发送队列中终态通知数量达到预设的缓存数量阈值时,利用该预设的缓存数量阈值对关单交易分计数器的数值进行更新,并将所述延时发送队列中的终态通知保存到存储设备中;

各所述终态通知发送节点102还设置为:在终态通知延时开关关闭的情况下,获取所述延时发送队列和/或所述存储设备中的终态通知并发送出去。

需要说明的是,在线支付系统的终态通知延时开关一般为关闭状态,关单交易的终态通知生成后可即可发送。在一些业务场景下,例如重大保障期,需要进行延时控速发送,这时终态通知延时开关开启,各交易关单业务节点101进行关单业务处理,并生成待发送终态通知,但这些终态通知需要被延时发送。一些示例性实施例中,这些待发送的终态通知提交到延时发送队列中等待发送;一些示例性实施例中,当队列中消息累计达到预设缓存数量阈值时,将这些待发送的终态通知序列化保存到磁盘中。一些示例性实施例中,所述延时发送队列包括一个或多个;即各交易关单业务节点101各自对应一个延时发送队列,或者,多个交易关单业务节点101共同对应一个或几个延时发送队列,不限于特定的实现方式。

当终态通知延时开关关闭后,各终态通知发送节点102从延时发送队列或磁盘中获取待发送终态通知并发送。

在此过程中各交易关单业务节点101在自身内存中对关单交易分计数器进行计数,并在满足写入条件的情况下,将最新数值写入日志节点的日志文件中;各终态通知发送节点102各自在内存中在自身内存中对终态通知分计数器进行计数,并在满足写入条件的情况下,将最新数值写入日志节点的日志文件中。计数装置30可以实时确定整个在线支付系统的交易处理情况,例如当前终态通知的发送情况,即了解当前整体系统中终态通知的积压情况,或发送速度。一些示例性实施例中,还可以根据积压情况动态新增终态通知发送节点102,以提升发送速度。

一些示例性实施例中,各交易关单业务节点101的写入条件还包括:所述延时发送队列中缓存的终态通知的数量大于或等于预设的缓存数量阈值时,将自身已关单交易的累计数量作为关单交易分计数器的最新数值,写入所述日志节点上的日志文件中。可以利用终态通知延时发送队列的序列化时机作为关单交易分计数器的数值更新触发时机,并且,由于关单一笔交易就会生成一条待发送的终态通知,生成的终态通知的累计数量等于已关单交易的累计数量,也就可以利用预设的缓存数量阈值来增加关单交易分计数器的数值。

一些示例性实施例中,所述预设的关单交易分计数器包括:若干个银行对应的关单交易分计数器;所述预设的终态通知分计数器包括:若干个银行对应的终态通知分计数器;

所述计数装置30还设置为:从所述日志文件中分别获取各所述交易关单业务节点的各银行对应的关单交易分计数器数值,并保存到搜索服务器40中;从所述日志文件中分别获取各所述终态通知发送节点的各银行对应的终态通知分计数器数值,并保存到搜索服务器40中。

即各交易关单业务节点101分别对各银行进行关单交易分计数器进行计数,各终态通知发送节点102分别对各银行进行终态通知分计数器进行计数,并将抽取的分计数器信息保存到搜索服务器40上。以便后续进行更细粒度的计数汇总。

一些示例性实施例中,分计数器信息至少包括:业务节点、计数器标识、银行标识和最新计数数值。

一些示例性实施例中,所述计数装置30还设置为:根据所述搜索服务器40中保存的各银行的关单交易分计数器数值和各银行的终态通知分计数器数值,确定各银行的交易处理情况。

一些示例性实施例中,所述计数装置30还设置为:将分计数器信息保存到搜索服务器40中;向所述搜索服务器40提交搜索条件获取对应的搜索结果,根据所述搜索结果确定一个或多个银行的交易处理情况;

一些示例性实施例中,分计数器信息包括:业务节点标识、计数器标识、银行标识、最新计数数值和更新时间;所述搜索条件至少包括:银行标识。

例如,保存到搜索服务器40上的分计数器信息如下:

其中,计数器标识1为关单交易计数器,对应到各交易关单业务节点101上,称为关单交易分计数器;计数器标识2为终态通知计数器,对应到各终态通知发送节点102上,称为终态通知分计数器。

例如,搜索条件中银行标识为BankID1,则计数装置30向搜索服务器40提交该搜索条件,所述搜索服务器40根据该银行标识,搜索自身存储的分计数器信息,返回该银行标识对应的关单交易计数器的总计数数值(即该银行的关单交易总数)和终态通知计数器的总计数数值(即该银行的终态通知发送总数);其中搜索服务器返回的计数器标识为1的总计数数值=500+4000+7000,计数器标识为2的总计数数值=200+550+6000。计数装置30根据这2个总计数数值就可以确定当前该银行的终态通知总体发送情况,即有4750条终态通知还未发送。

一些示例性实施例中,所述搜索服务器根据历史的分计数器信息还可以进一步搜索统计出计数器标识1对应的总计数值在单位时间内的变化情况,例如可以统计每10分钟新增多少待发送终态通知;和/或,搜索统计出计数器标识2对应的总计数数值在单位时间内的变化情况,例如可以统计每10分钟发送了多少终态通知,等等。

需要说明的是,上述示例体现了搜索服务器40的可以提供的部分搜索结果,搜索服务器40还可以定义其他搜索条件以及对应的搜索结果,计数装置30对应提交搜索条件即可,更多搜索条件以及对应搜索结果的详细示例在此不一一记载。本领域技术人员根据上述示例,可以根据需要确定对应的实施方式。

可以看到,计数装置可以实时确定各银行的待发送终态通知的积压情况或发送终态通知的速度。基于此可以进一步判断对接银行的相关接收系统是否正常或是否满足业务处理需求,以进一步调整业务节点配置或通知银行排查或提升处理能力。

本公开实施例还提供一种分布式计数方法,如图3所示,包括:

步骤310,各分布式业务节点在满足预设的分计数器数值写入条件的情况下,将所述分计数器的最新数值写入日志节点上的日志文件中;

步骤320,计数装置从所述日志文件中分别获取各所述分布式业务节点的分计数器数值;根据各所述分计数器数值,确定预设计数器在分布式业务系统中的总计数数值。

一些示例性实施例中,各所述分布式业务节点中包括一个或多个应用系统;各应用系统包括一个或多个分计数器。

一些示例性实施例中,所述日志节点包括一个或多个;各日志节点上的日志文件包括一个或多个。

一些示例性实施例中,所述日志节点和业务节点可以为同一个物理节点;也可以是不同的物理节点。

其中,预设的分计数器数值写入条件包括至少以下之一:

预设的写日志事件发生;

预设的写日志间隔到来。

例如,预设的写日志事件为分计数器发生变化,则表明,在分计数器发生变化时将最新数值写入日志文件。

可以看到,虽然业务节点中分计数器数值对于整个分布式系统中预设计数器的总计数数值有影响,但是,业务节点中的应用并不操作整体分布式系统中的共享计数器,只在本地内存中操作自身的分计数器。可以避免多个节点共同操作共享计数器引起的冲突,同时,大大减少了节点操作计数器的系统开销;节点对分计数器的操作及时、准确且稳定。同时,也无需引入其他组件来协助对分布式系统中共享计数器的操作,大大提升了整个分布式系统的运行稳定性。

示例一

在在线支付的分布式系统中,关单服务在执行任务时,关单任务将随机分发到不同的服务实例(部署于不同分布式节点)执行,不同实例之间在受理银行、交易数量等方面必然存在一定差异。在正常情况下,一个实例(节点)在完成自身分配的交易流水的关单处理后,会将该交易的终态通知发送给目标系统。

但是,在某些特殊时期,会暂停或延期或减慢某些通知信息的发送。例如,在重要保障时期,业务系统需要将关单交易的终态通知进行延时控速发送,终态通知延时开关打开,关单交易的终态通知被延时,执行关单交易的实例(节点,也称为交易关单业务节点)在达到延时刷盘交易笔数后,延时队列将序列化到本地磁盘,由于一条终态通知对应一笔关单交易,因此可以对关单交易计数器的数值进行更新,即同时,调增自身对应银行的缓存的关单交易计数器。

当恢复终态通知发送时,执行延时终态通知发送的实例(节点,也称为终态通知发送节点)将延时的终态通知发送,每完成一笔终态通知发送,将会调增自身的对应银行的终态通知计数器,业务系统需要实时了解缓存的终态通知的发送情况,当缓存的关单交易计数器与终态通知计数器一致时,判断终态通知发送完成。其中,执行关单交易的实例(节点)包括一个或多个节点;执行延时终态通知发送的实例(节点)包括一个或多个节点;一个节点上可以包括执行关单交易的实例或执行延时终态通知发送的实例;或者,一个节点上可以包括执行关单交易的实例和执行延时终态通知发送的实例。可以看到,在该在线支付的分布式系统中,总的缓存的关单交易计数器的数值是多个节点上的缓存的关单交易分计数器数值的总和,总的终态通知计数器的数值是多个节点上的终态通知分计数器数值的总和;某银行的总的缓存的关单交易计数器的数值是多个节点上的该银行的缓存的关单交易分计数器数值的总和,某银行的总的终态通知计数器的数值是多个节点上该银行的终态通知分计数器数值的总和。

上述该在线支付的分布式系统中总的缓存的关单交易计数器、该在线支付的分布式系统中总的终态通知计数器、该在线支付的分布式系统中某银行的总的缓存的关单交易计数器、该在线支付的分布式系统中某银行的总的终态通知计数器均为本公开实施例中所述预设计数器的一种实施例。

本示例所提供的计数方法包括:

步骤100,节点在调增自身对应银行的缓存的关单交易计数器或调增自身对应银行的终态通知计数器后,开启定时任务,每10秒按格式化日志约定规范将这个两个计数器信息写入日志文件中;

步骤200,根据预设的抽取间隔15秒,通过Flume从多个节点的日志文件中抽取多个节点的缓存的关单交易分计数器数值和/或终态通知分计数器的数值,并上送ES服务器;

步骤300,业务监控系统每隔20秒执行一次搜索任务,从ES中获取全部节点的上述计数器的数值,按银行、节点等多个维度进行聚合求和,确定各银行的总的缓存的关单交易计数器数值、各银行的总的终态通知计数器的数值、整个在线支付系统的总的缓存的关单交易计数器数值、整个在线支付系统的总的终态通知计数器的数值。

步骤400,根据各银行的总的缓存的关单交易计数器数值和对应银行的总的终态通知计数器的数值,判断各银行的延迟发送终态通知速度是否正常、能否在预期时长完成,或者,根据系统总的缓存的关单交易计数器数值和系统总的终态通知计数器的数值,判断整体系统的延迟发送终态通知速度是否正常?能否在预期时长完成,等等。

需要说明的是,上述步骤400只是示例性例举了对于在线支付的分布式系统中多个预设计数器的总计数数值如何进一步被使用。根据本示例,本领域技术人员可以根据需要预设系统中其他的一个或多个计数器,确定对应的总计数数值,以及基于所确定的一个或多个总计数数值进行后续业务处理,不限于本示例所示的具体方面。

可以看到,本公开提出的分布式计数方案,抛弃了传统分布式服务计数方案中采用共享计数器的集中计数方式,有效减小了分布式节点的计数复杂度,减小了节点与共享计数器之间的耦合,有效降低了整体系统复杂度。各节点操作自身的分计数器,避免了多个节点间共享计数器引起的访问冲突和系统开销,提高了节点业务运行的稳定性,提高了分布式系统整体稳定性和高可用性。特别是对于业务量巨大,业务高并发的支付系统而言,采用本公开提出的方案进行计数,是保障整体系统高可用性的基石。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

相关技术
  • 一种计数方法及计数系统
  • 挖掘机作业循环智能计数方法和计数系统
  • 一种基于荧光图像的细胞计数方法及系统
  • 一种用于微生物的计数方法和系统
  • 同一条鱼识别设备、鱼计数设备,用于鱼计数的便携式终端、同一条鱼识别方法、鱼计数方法、鱼计数预测设备、鱼计数预测方法、同一条鱼识别系统、鱼计数系统和鱼计数预测系统
  • 一种应用于多核系统的分布式引用计数系统及计数方法
技术分类

06120116329533