[发明专利]一种消息分类的处理方法及装置有效
申请号: | 201810259778.2 | 申请日: | 2018-03-27 |
公开(公告)号: | CN108509286B | 公开(公告)日: | 2022-09-27 |
发明(设计)人: | 祝军伟 | 申请(专利权)人: | 中国银联股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/52 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
地址: | 200135 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 分类 处理 方法 装置 | ||
本发明公开了一种消息分类的处理方法及装置,该方法包括通过获取待处理的消息,所述待处理的消息包括主键值,根据所述主键值,确定所述待处理的消息的子类型,将确定了子类型的所述待处理的消息写入消息队列。由于通过主键值得到相应的子类型,可以使得属于同一主键值的待处理的消息可以分配给同一处理单元进行处理,避免产生资源冲突,同时可以避免增加额外的加锁装置。
技术领域
本发明实施例涉及消息处理技术领域,尤其涉及一种消息分类的处理方法及装置。
背景技术
现在使用的主流消息队列一般都支持生产者对消息进行分类,消费者可获取指定类型的消息。同一类消息可由一组多个消费者并发获取,此时消息获取具有随机性。使用这类消息队列时,消息传递的方式大致的如图1所示。
在图1中,生产者将所有的消息标识为同一类型type=100,由一组消费者共同读取一类消息。这种方式下,三个消费者共同处理一类消息,消费者无状态,扩展性较好,其处理能力得到充分发挥,任意消费者异常情况下,消息仍能得到有效处理,具有高可用性。
但是,从图1可以看出,若消息1和消息2属于同一用户的消息,则消息1和消息2在处理过程中会存在资源冲突的情况,此时就需要对冲突资源进行加锁互斥,如果是分布式场景更需要引入分布式加锁模块,增加了处理应用程序的复杂度,牺牲了部分性能。
发明内容
本发明实施例提供一种消息分类的处理方法及装置,用以实现在不增加加锁装置的情况下解决资源冲突的问题。
本发明实施例提供的一种消息分类的处理方法,包括:
获取待处理的消息,所述待处理的消息包括主键值;
根据所述主键值,确定所述待处理的消息的子类型;
将确定了子类型的所述待处理的消息写入消息队列。
可选的,所述根据所述主键值,确定所述待处理的消息的子类型,包括:
使用哈希算法确定出所述主键值的哈希值;
根据所述主键值的哈希值以及预设的哈希值区间范围对应的子类型,确定所述待处理的消息的子类型。
可选的,在所述将确定了子类型的所述待处理的消息写入消息队列之后,还包括:
申请带有有效期的令牌;
根据所述令牌以及令牌与子类型的对应关系,从所述消息队列中读取与所述令牌相对应的子类型的待处理的消息。
可选的,在所述申请带有有效期的令牌之后,还包括:
获取当前处理消息的处理单元的数量、当前处理消息的处理单元对应的子类型的数量、子类型的总数量;
根据所述当前处理消息的处理单元的数量、当前处理消息的处理单元对应的子类型的数量和子类型的总数量,为申请令牌的处理单元分配其对应的子类型的数量;
根据为申请令牌的处理单元分配其对应的子类型的数量,调整所述令牌与子类型的对应关系。
相应的,本发明实施例提供一种消息分类的处理装置,包括:
获取单元,用于获取待处理的消息,所述待处理的消息包括主键值;
确定单元,用于根据所述主键值,确定所述待处理的消息的子类型;
写入单元,用于将确定了子类型的所述待处理的消息写入消息队列。
可选的,所述确定单元具体用于:
使用哈希算法确定出所述主键值的哈希值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国银联股份有限公司,未经中国银联股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810259778.2/2.html,转载请声明来源钻瓜专利网。