一种基于配置的消息队列组件及其集成的方法与流程

文档序号:12824422阅读:510来源:国知局
一种基于配置的消息队列组件及其集成的方法与流程

本发明涉及并发数据处理技术领域,尤其涉及一种基于配置的消息队列组件及其集成的方法。



背景技术:

互联网企业高并发的属性使得很多企业引入了消息队列服务,来作为并发流量的缓冲区。其中,使用比较广泛的消息队列服务器有:rabbitmq、activemq、kafka等。在这些服务器中,mq产品提供了自定义的调用客户端,基于客户端就可以方便的实现消息的生产和消费。

但是,消息生产消费过程中的使用以及配置信息比较繁琐,需要使用方了解其调用以及配置方式,对使用方不够透明,而且,客户端与mq产品高度耦合,软件系统依赖于指定的mq产品,对于后期的更换带来不便以及增加更换的风险。



技术实现要素:

本发明的目的在于提供一种基于配置的消息队列组件及其集成的方法,从而解决现有技术中存在的前述问题。

为了实现上述目的,本发明采用的技术方案如下:

一种基于配置的消息队列组件,包括:mq管理模块,以及与所述mq管理模块数据连接的mq处理线程池、消息服务模块和mq服务可用性监控模块;所述mq管理模块为整个消息的核心管理类,用于消息的生产、消费端的监听以及线程池的管理;所述mq处理线程池用于对多线程进行调度管理,增强对并发的吞吐;所述消息服务模块用于提供对外开放的api服务,使用方通过引入该服务即可实现消息的生产,所述消息服务模块包括消息体和消息监听器,所述消息体为自定义注解,用于装载队列的配置信息并注册,所述消息监听器用于为对外开放的spi,使用方可根据具体的业务逻辑实现其内部的监听方法;所述mq服务可用性监控模块:用于对客户端连接进行监控管理,可实现断链重连。

优选地,所述消息体通过对消息的抽象,自定义消息注解,实现消息体的可配置。

优选地,所述消息体采用类messageannotationbeanpostprocessor实现对消息注解配置的自动注册。

优选地,所述mq管理模块采用messageconfig实现对整个消息运行环境的管理。

一种基于配置的消息队列组件集成的方法,包括如下步骤:

s1,通过maven的方式将组件引入项目中;

s2,在sendtask方法体上添加消息注解,消息监听器自动监听到该消息,实现自动注册;

s3,在需要消费的业务项目中,创建业务监听类,并实现messagelistener消息监听器接口,在监听方法内编写消费业务,在监听方法体上配置消息注解,实现消费业务的绑定,实现消费端的自动注册。

优选地,s2中所述在sendtask方法体上添加消息注解,具体为,通过对消息的抽象,自定义消息注解。

优选地,s2中消息监听器自动监听到该消息,实现自动注册,具体为,采用类messageannotationbeanpostprocessor实现对消息注解配置的自动注册。

本发明的有益效果是:本发明实施例提供的基于配置的消息队列组件及其集成的方法,通过在组件中设置消息服务模块,且消息服务模块包括消息体和消息监听器,所述消息体为自定义注解,用于装载队列的配置信息并注册,所述消息监听器用于为对外开放的spi,使用方可根据具体的业务逻辑实现其内部的监听方法,所以,对该组件集成后,可以使集成mq消息队列变得轻量级,只需要简单的配置即可集成队列服务;而且实现了与mq产品解耦,可以实现无感知的mq产品替换;另外,通过在组件中设置mq处理线程池,实现了对多线程进行调度管理,增强了对并发的吞吐;通过在组件中设置mq服务可用性监控模块,可以对客户端连接进行监控管理,实现断链重连,保证了通道的可用性;通过在组件中设置mq管理模块,实现对整个消息的管理。

附图说明

图1是本发明实施例提供的基于配置的消息队列组件架构图;

图2是本发明实施例提供的基于配置的消息队列组件集成方法流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。

本发明中涉及到的科技术语解释说明如下:

mq:消息队列

amqp:一个提供统一消息服务的应用层标准高级消息队列协议

rabbitmq:rabbitmq是一个在amqp基础上完整的,可复用的企业消息系统。

api:应用程序编程接口,已经有了内部的实现,不对外暴露。

spi:应用程序编程接,定义标准,实现依赖于调用方,常用于插件模式的开发中。

实施例一

如图1所示,本发明实施例提供了一种基于配置的消息队列组件,包括:mq管理模块,以及与所述mq管理模块数据连接的mq处理线程池、消息服务模块和mq服务可用性监控模块;所述mq管理模块为整个消息的核心管理类,用于消息的生产、消费端的监听以及线程池的管理;所述mq处理线程池用于对多线程进行调度管理,增强对并发的吞吐;所述消息服务模块用于提供对外开放的api服务,使用方通过引入该服务即可实现消息的生产,所述消息服务模块包括消息体和消息监听器,所述消息体为自定义注解,用于装载队列的配置信息并注册,所述消息监听器用于为对外开放的spi,使用方可根据具体的业务逻辑实现其内部的监听方法;所述mq服务可用性监控模块:用于对客户端连接进行监控管理,可实现断链重连。

其中,mq的配置基于注解的实现方式,以及自动扫描注册;架构中消息监听器的定义,实现插件式模式,让低成本集成成为可能;结构中加入mq服务可用性监控模块,起到连接检测、断链重连,保证了可用性、稳定性。

本发明实施例中,所述消息体通过对消息的抽象,自定义消息注解,实现消息体的可配置。

所述消息体采用类messageannotationbeanpostprocessor实现对消息注解配置的自动注册。

所述mq管理模块采用messageconfig实现对整个消息运行环境的管理。

实施例二

如图2所示,本发明实施例提供了一种基于配置的消息队列组件集成的方法,包括如下步骤:

s1,通过maven的方式将组件引入项目中;

s2,在sendtask方法体上添加消息注解,消息监听器自动监听到该消息,实现自动注册;

s3,在需要消费的业务项目中,创建业务监听类,并实现messagelistener消息监听器接口,在监听方法内编写消费业务,在监听方法体上配置消息注解,实现消费业务的绑定,实现消费端的自动注册。

以上三步骤即可在业务项目中引入mq服务,基于配置化、高内聚、低耦合、屏蔽底层细节的原则,使得开发人员在开发消息服务过程中,只需要把精力放在业务上,大大提高了开发效率。

本发明实施例中,s2中所述在sendtask方法体上添加消息注解,具体为,通过对消息的抽象,自定义消息注解。

本发明实施例中,s2中消息监听器自动监听到该消息,实现自动注册,具体为,采用类messageannotationbeanpostprocessor实现对消息注解配置的自动注册。

通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明实施例提供的基于配置的消息队列组件及其集成的方法,通过在组件中设置消息服务模块,且消息服务模块包括消息体和消息监听器,所述消息体为自定义注解,用于装载队列的配置信息并注册,所述消息监听器用于为对外开放的spi,使用方可根据具体的业务逻辑实现其内部的监听方法,所以,对该组件集成后,可以使集成mq消息队列变得轻量级,只需要简单的配置即可集成队列服务;而且实现了与mq产品解耦,可以实现无感知的mq产品替换;另外,通过在组件中设置mq处理线程池,实现了对多线程进行调度管理,增强了对并发的吞吐;通过在组件中设置mq服务可用性监控模块,可以对客户端连接进行监控管理,实现断链重连,保证了通道的可用性;通过在组件中设置mq管理模块,实现对整个消息的管理。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域人员应该理解的是,上述实施例提供的方法步骤的时序可根据实际情况进行适应性调整,也可根据实际情况并发进行。

上述实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,例如:个人计算机、服务器、网络设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,例如:ram、rom、磁碟、磁带、光盘、闪存、u盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1