本技术属于消息适配器,尤其涉及一种消息适配器实现系统及方法。
背景技术:
1、在现代分布式系统开发中,消息中间件(如apache kafka、pulsar等)被广泛应用于解耦服务、提高系统可扩展性和可靠性。然而,不同机构由于技术栈、性能需求或已有基础设施等因素,可能偏好不同的消息队列解决方案。这导致开发者在设计系统时需针对特定消息中间件编写适配代码,增加了项目维护难度和成本,降低了代码的复用性和通用性。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种消息适配器实现系统及方法。
2、第一方面,本技术提供了一种消息适配器实现系统,系统包括:消息发送执行器模块和消息处理器模块,所述消息发送执行模块与所述消息处理器模块相连;
3、所述消息发送执行器模块,用于获取消息的类型,并与预先存储的多个实现类进行匹配,得到所述消息对应的目标实现类,其中,所述目标实现类为多个所述实现类中的一个;
4、所述消息发送执行器模块,还用于根据所述目标实现类的消息处理逻辑,对所述消息进行处理,并通过所述spring框架对所述目标实现类标记为需要管理的bean,形成具有注解的消息;
5、所述消息处理器模块,存放所有标记了hrfaxmessagelistener注解的方法,接收到所述具有注解的消息后,用于根据所述具有注解的消息,调用对应的所述hrfaxmessagelistener注解的方法,执行所述具有注解的消息的处理逻辑。
6、可实施的一些方式中,所述消息发送执行器模块具有applicationcontextaware接口;
7、所述applicationcontextaware接口,用于通过所述spring框架来监听发送所述消息的系统启动;
8、所述消息发送执行器模块,还用于:
9、构建并初始化一个类变量;
10、将所有hrfaxmessageproducer的消息的实现类,存储在所述类变量中;
11、当获取到所述消息后,根据所述消息的类型,与所述类变量中,预先存储的所有hrfaxmessageproducer的消息的所述实现类进行匹配,得到目标实现类。
12、可实施的一些方式中,所述消息发送执行器模块,包括消息发送器接口;
13、所述消息发送器接口,用于继承所述消息发送执行器模块的所述实现类,并对应实现各个所述实现类的发送消息逻辑;
14、所述消息发送器接口,还用于通过spring框架的注解将所述实现类的实例交由spring框架管理。
15、可实施的一些方式中,所述消息处理器模块包括消息接收处理器;
16、所述消息接收处理器,具有实现spring框架的beanpostprocessor接口的postprocessafterinitialization方法,包括存放所有标记了hrfaxmessagelistener注解的方法,以便接收具有注解的消息时,调用对应的接收消息方法;
17、所述消息接收处理器,用于:
18、对所有bean初始化后,利用java的反射获取到bean的方法method进行监听,得到监听结果;
19、根据所述监听结果,筛选出标记了hrfaxmessagelistener注解的方法;
20、将标记了hrfaxmessagelistener注解的方法,存入到一个类变量中;
21、当接收具有注解的消息时,在所述类变量中,调用对应的所述hrfaxmessagelistener注解的方法,执行所述具有注解的消息的处理逻辑。
22、可实施的一些方式中,所述消息接收处理器包括消息接收处理器接口;
23、所述消息接收处理器接口,具有实现hrfaxmessageconsumer接口并提供一个标记注解的方法;
24、所述消息接收处理器接口,用于:
25、初始化消息监听逻辑;
26、当监听到具有注解的消息时,在所述消息处理器模块中,获取所述具有注解的消息的topic对应标记了hrfaxmessagelistener注解的方法method,并执行method。
27、可实施的一些方式中,还包括确认消息器接口模块;所述确认消息器接口模块与所述消息处理器模块连接;
28、所述确认消息器接口模块,用于继承新实现类,其中,所述新实现类表示区别于预先存储的多个所述实现类;
29、所述确认消息器接口模块,还用于利用所述新实现类,实现所述消息类型的确认消息逻辑,并在所述具有注解的消息执行成功后,调用所述新实现类的确认消息方法,得到消息已经被消费。
30、第二方便,本技术提供一种消息适配器实现方法,应用于前述的消息适配器实现系统,所述方法包括:
31、获取消息的类型,并与预先存储的多个实现类进行匹配,得到所述消息对应的目标实现类,其中,所述目标实现类为多个所述实现类中的一个;
32、根据所述目标实现类的消息处理逻辑,对所述消息进行处理,并通过所述spring框架对所述目标实现类标记为需要管理的bean,形成具有注解的消息;
33、当接收到所述具有注解的消息后,根据所述具有注解的消息,调用对应的所述hrfaxmessagelistener注解的方法,执行所述具有注解的消息的处理逻辑。
34、第三方面,本技术提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现前述的消息适配器实现系统。
35、第四方面,本技术提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述的消息适配器实现系统。
36、第五方便,本技术提供一种计算机程序,所述计算机程序被处理器执行时实现前述的消息适配器实现系统。
37、有益效果
38、本技术提供一种消息适配器实现系统及方法,系统包括:消息发送执行器模块和消息处理器模块,所述消息发送执行模块与所述消息处理器模块相连;所述消息发送执行器模块,用于获取消息的类型,并与预先存储的多个实现类进行匹配,得到所述消息对应的目标实现类,其中,所述目标实现类为多个所述实现类中的一个;所述消息发送执行器模块,还用于根据所述目标实现类的消息处理逻辑,对所述消息进行处理,并通过所述spring框架对所述目标实现类标记为需要管理的bean,形成具有注解的消息;所述消息处理器模块,存放所有标记了hrfaxmessagelistener注解的方法,接收到所述具有注解的消息后,用于根据所述具有注解的消息,调用对应的所述hrfaxmessagelistener注解的方法,执行所述具有注解的消息的处理逻辑。上述系统使得开发者在设计系统时仅需针对特定消息中间件编写适配代码,减少了项目维护难度和成本,提高了代码的复用性和通用性。从而实现对多种消息中间件的无缝支持,通过配置而非编码方式轻松切换消息队列类型,从而提高软件开发的灵活性和效率。