一种流式计算系统的消息处理方法和装置制造方法及图纸

技术编号:14494629 阅读:89 留言:0更新日期:2017-01-29 17:29
本发明专利技术提供了一种流式计算系统的消息处理方法和装置,其中方法包括:S1、接收消息;S2、判断第一存储单元中是否已经存储有所述消息,如果是,不对该消息进行处理;否则,执行S3;S3、判断第二存储单元中是否已经存在所述消息对应的业务处理结果,如果是,执行S6,否则执行S4;S4、对所述消息进行业务处理;S5、将所述消息及其业务处理结果写入第二存储单元;S6、将所述消息写入第一存储单元。本发明专利技术能够保证流式计算系统中消息仅被业务处理一次,提高了系统性能和效率。

【技术实现步骤摘要】

本专利技术涉及计算机应用
,特别涉及一种流式计算系统的消息处理方法和装置
技术介绍
JStorm是参考storm的实时流式计算框架,在网络IO、线程模型、资源调度、可用性及稳定性上做了持续改进,已被越来越多企业使用。流式计算领域目前消息处理的级别一般为处理至少一次和处理至多一次,亟需一种简单高效的方式来保证消息被准确地只处理一次。JStrom本身已经提供了Acker机制来实现至少处理一次的消息处理界别,因此需要解决的核心问题是,如何对重复数据进行去重,即对于处理过的消息不再进行处理。
技术实现思路
有鉴于此,本专利技术提供了一种流式计算系统的消息处理方法和装置,以便于减少对消息的重复处理。具体技术方案如下:本专利技术提供了一种流式处理系统的消息处理方法,该方法包括:S1、接收消息;S2、判断第一存储单元中是否已经存储有所述消息,如果是,不对该消息进行处理;否则,执行S3;S3、判断第二存储单元中是否已经存在所述消息对应的业务处理结果,如果是,执行S6,否则执行S4;S4、对所述消息进行业务处理;S5、将所述消息及其业务处理结果写入第二存储单元;S6、将所述消息写入第一存储单元。根据本专利技术一优选实施方式,所述第一存储单元中的内容被映射至布隆过滤器BloomFilter;在所述S2之前还包括:判断所述消息是否命中BloomFilter,如果否,执行所述S3;如果是,则执行所述S2。根据本专利技术一优选实施方式,在执行所述S4时,如果所述第二存储单元中已经存在与所述消息具有相同计算标识的消息列表,则利用与所述消息具有相同计算标识的消息列表对应的业务处理结果,对所述消息进行业务处理;在所述S5中,将所述消息加入所述消息列表,并利用S4的业务处理结果更新所述第二存储单元中所述消息列表对应的业务处理结果;在执行所述S6时,将包含所述消息的所述消息列表写入第一存储单元。根据本专利技术一优选实施方式,在所述S4和所述S5之间还包括:将所述消息及其对应的业务处理结果放入写入队列;利用所述写入队列中的内容执行所述S5和所述S6。根据本专利技术一优选实施方式,利用所述写入队列中的内容执行所述S5和所述S6包括:S51、从所述写入队列中取出一个缓存节点,所述一个缓存节点中包含消息及其对应的业务处理结果;S52、将所述缓存节点中的内容写入所述第二存储单元;S53、将所述缓存节点中的消息放入去重存储写入队列;S54、从去重存储写入队列中取出消息并写入第一存储单元。根据本专利技术一优选实施方式,在所述S2之后且所述S3之间还包括:判断所述写入队列和所述去重存储写入队列中是否已经存在所述消息,如果是,则不对所述消息进行业务处理,否则继续执行所述S3。根据本专利技术一优选实施方式,在所述S51和所述S52之前还包括:判断所述去重存储写入队列中是否已经存在与所述缓存节点所包含消息具有相同计算标识的消息,如果是,则将所述缓存节点放回所述写入队列,等待重新执行所述S51;否则,继续执行所述S52。本专利技术还提供了一种流式计算系统的消息处理装置,该装置包括:接收单元,用于接收消息;第一判断单元,用于判断第一存储单元中是否已经存储有所述消息,如果判断结果为是,不再对所述消息进行处理;第二判断单元,用于在所述第一判断单元的判断结果为否时,判断所述第二存储单元中是否已经存在所述消息对应的业务处理结果;处理单元,用于在所述第二判断单元的判断结果为是时,不对所述消息进行业务处理;在所述第二判断单元的判断结果为否时,对所述消息进行业务处理;第一写入单元,用于将所述消息的处理结果写入第二存储单元;第二写入单元,用于在所述第一写入单元完成写入后,或者在所述第二判断单元的判断结果为否时,将所述消息写入第一存储单元。根据本专利技术一优选实施方式,所述第一存储单元中的内容被映射至BloomFilter;该装置还包括:第三判断单元,用于在所述接收单元接收到所述消息后,判断所述消息是否命中BloomFilter,如果否,触发所述第二判断单元执行判断的操作;如果是,触发所述第一判断单元执行判断的操作。根据本专利技术一优选实施方式,所述处理单元,具体用于如果所述第二存储单元中已经存在与所述消息具有相同计算标识的消息列表,则利用与所述消息具有相同计算标识的消息列表对应的业务处理结果,对所述消息进行业务处理;所述第一写入单元,具体用于将所述消息加入所述消息列表,并利用所述处理单元本次的业务处理结果更新所述第二存储单元中所述消息列表对应的业务处理结果;所述第二写入单元,具体用于将包含所述消息的所述消息列表写入第一存储单元。根据本专利技术一优选实施方式,所述处理单元,还用于将所述消息及其对应的业务处理结果放入写入队列;所述第一写入单元和所述第二写入单元利用所述写入队列中的内容执行写入的操作。根据本专利技术一优选实施方式,所述第一写入单元,具体用于从所述写入队列中取出一个缓存节点,所述一个缓存节点中包含消息及其对应的业务处理结果,将所述缓存节点中的内容写入所述第二存储单元,将所述缓存节点中的消息放入去重存储写入队列;所述第二写入单元,具体用于从去重存储写入队列中取出消息并写入第一存储单元。根据本专利技术一优选实施方式,该装置还包括:第四判断单元,用于在所述第一判断单元的判断结果为否时,判断所述写入队列和所述去重写入队列中是否已经存在所述消息,如果是,则不对所述消息进行业务处理;否则,触发所述第二判断单元执行判断的操作。根据本专利技术一优选实施方式,所述第一写入单元在将所述缓存节点中的内容写入所述第二存储单元之前,还用于判断所述去重存储写入队列中是否已经存在与所述缓存节点所包含消息具有相同计算标识的消息,如果是,则将所述缓存节点放回所述写入队列,等待重新取出;否则,继续执行将所述缓存节点中的内容写入所述第二存储单元的操作。由以上技术方案可以看出,将消息连同处理结果对应写入第二存储单元,即便消息写入第一存储单元失败,下次接收到相同的消息时,由于第二存储单元中已经存在该消息对应的业务处理结果,不必再次对该消息进行业务处理,仅将该消息写入第一存储单元即可,保证了消息仅被业务处理一次,提高了系统性能和效率。【附图说明】图1为本专利技术实施例提供的一个处理流程图;图2为本专利技术实施例提供的消息处理方法的流程图;图3为本专利技术实施例提供的计算存储单元和去重存储单元的写入流程图;图4为本专利技术实施例提供的消息处理装置的结构图。【具体实施方式】为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描述。在本专利技术中使用两个存储单元:计算存储单元(第二存储单元)和去重存储单元(第一存储单元)。其中,计算存储单元用于存储对消息的业务处理结果,去重存储单元存储进行过业务处理的消息,用于做去重以避免消息的重复业务处理。当接收到一个消息时,处理流程可以如图1中所示,包括以下流程:在101中,判断去重存储单元中是否已经存储有该接收到的消息,如果是,不再对该消息进行处理;否则,执行102。在102中,对该消息进行业务处理。在本专利技术实施例中涉及的对消息进行的业务处理可以由具体的业务需求来确定,可能会利用历史处理结果,如果需要利用历史处理结果,则在业务处理时,可以首先从计算存储单元中获取历史处理结果,然后利用本文档来自技高网...
一种流式计算系统的消息处理方法和装置

【技术保护点】
一种流式计算系统的消息处理方法,其特征在于,该方法包括:S1、接收消息;S2、判断第一存储单元中是否已经存储有所述消息,如果是,不对该消息进行处理;否则,执行S3;S3、判断第二存储单元中是否已经存在所述消息对应的业务处理结果,如果是,执行S6,否则执行S4;S4、对所述消息进行业务处理;S5、将所述消息及其业务处理结果写入第二存储单元;S6、将所述消息写入第一存储单元。

【技术特征摘要】
1.一种流式计算系统的消息处理方法,其特征在于,该方法包括:S1、接收消息;S2、判断第一存储单元中是否已经存储有所述消息,如果是,不对该消息进行处理;否则,执行S3;S3、判断第二存储单元中是否已经存在所述消息对应的业务处理结果,如果是,执行S6,否则执行S4;S4、对所述消息进行业务处理;S5、将所述消息及其业务处理结果写入第二存储单元;S6、将所述消息写入第一存储单元。2.根据权利要求1所述的方法,其特征在于,所述第一存储单元中的内容被映射至布隆过滤器BloomFilter;在所述S2之前还包括:判断所述消息是否命中BloomFilter,如果否,执行所述S3;如果是,则执行所述S2。3.根据权利要求1所述的方法,其特征在于,在执行所述S4时,如果所述第二存储单元中已经存在与所述消息具有相同计算标识的消息列表,则利用与所述消息具有相同计算标识的消息列表对应的业务处理结果,对所述消息进行业务处理;在所述S5中,将所述消息加入所述消息列表,并利用S4的业务处理结果更新所述第二存储单元中所述消息列表对应的业务处理结果;在执行所述S6时,将包含所述消息的所述消息列表写入第一存储单元。4.根据权利要求1、2或3所述的方法,其特征在于,在所述S4和所述S5之间还包括:将所述消息及其对应的业务处理结果放入写入队列;对所述写入队列中的内容执行所述S5和所述S6。5.根据权利要求4所述的方法,其特征在于,对所述写入队列中的内容执行所述S5和所述S6包括:S51、从所述写入队列中取出一个缓存节点,所述一个缓存节点中包含消息及其对应的业务处理结果;S52、将所述缓存节点中的内容写入所述第二存储单元;S53、将所述缓存节点中的消息放入去重存储写入队列;S54、从去重存储写入队列中取出消息并写入第一存储单元。6.根据权利要求5所述的方法,其特征在于,在所述S2之后且所述S3之前还包括:判断所述写入队列和所述去重存储写入队列中是否已经存在所述消息,如果是,则不对所述消息进行业务处理,否则继续执行所述S3。7.根据权利要求5所述的方法,其特征在于,在所述S51和所述S52之间还包括:判断所述去重存储写入队列中是否已经存在与所述缓存节点所包含消息具有相同计算标识的消息,如果是,则将所述缓存节点放回所述写入队列,等待重新执行所述S51;否则,继续执行所述S52。8.一种流式计算系统的消息处理装置,其特征在于,该装置包括:接收单元,用于接收消息;第一判断单元,用于判断第一存储单元中是否已经存储有所述消息,如果判断结果为是,不再对所述消息进行处理;第二判断单元,用于在所述第一判断单元的判断结果为...

【专利技术属性】
技术研发人员:陈昱刘键封仲淹
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1