【技术实现步骤摘要】
一种消息中间件的消息去重的实现方法
本专利技术涉及消息处理
,更具体地,涉及一种消息中间件的消息去重的实现方法。
技术介绍
消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成,通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。在生产者消费者场景中,消息中间件的三大要素为:生产者、消息、消费者。其中生产者生产消息,并将消息通过消息中间件发送给消息中间件去消费。消息中间件作为消息的中间方,负责维护消费者的主题订阅关系,同时负责接受消息生产方发来的消息,并根据消息主题向消费者推送消息。传统的消息中间件如Kafka等,在某些需求场景下,并不能很好的满足系统需求。比如消息去重的场景,这种场景下消费方不希望重复消费同样的消息。Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的应用程序编程接口(API)。Redis支持存储的数值类型很多,包括字符串(string)、列表(list)、集合(set)、有序集合(zset)和哈希类型( ...
【技术保护点】
1.一种消息中间件的消息去重的实现方法,所述方法包括:采用Redis的列表结构作为消息中间件的消息队列;创建生产者系统和消费者系统的订阅模型;采用Redis的集合存放已存在消息的标识,当消息中间件收到新消息时,根据消息的主题,在对应的集合中查询该消息的标识是否已存在,若存在则忽略所述消息,若不存在则将所述消息追加入所述消息队列中。
【技术特征摘要】
1.一种消息中间件的消息去重的实现方法,所述方法包括:采用Redis的列表结构作为消息中间件的消息队列;创建生产者系统和消费者系统的订阅模型;采用Redis的集合存放已存在消息的标识,当消息中间件收到新消息时,根据消息的主题,在对应的集合中查询该消息的标识是否已存在,若存在则忽略所述消息,若不存在则将所述消息追加入所述消息队列中。2.根据权利要求1所述的方法,其中,所述消息中间件以超文本传输协议服务为载体,消费者和生产者通过调用所述消息中间件的应用程序编程接口进行消息的发送和获取。3.根据权利要求2所述的方法,其中,消费者通过调用所述消息中间件的应用程序编程接口来向所述消息中间件注册订阅关系。4.根据权利要求1所述的方法,其中,所述订阅模型的属性包括:消费者的接受订阅消息地址;消费者可接受的消息报文结构;消费者订阅的主题;消费失败的处理策略。5.根据权利要求...
【专利技术属性】
技术研发人员:张振铎,张文明,陈少杰,
申请(专利权)人:武汉斗鱼网络科技有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。