本发明涉及计算机技术领域,尤其涉及一种消息处理方法、装置、设备及计算机可读存储介质。
背景技术:
消息中间件,也叫消息队列,是一种用于不同应用系统之间交换消息的软件系统。消息中间件广泛应用于互联网分布式系统和微服务应用领域。
消息中间件的典型使用场景是异步解耦,使用方式为发送-订阅模式。一个或多个生产者发送消息到消息中间件,一个或多个消费者从消息中间件订阅并处理消息。
由于消息中间件产品众多,通常it系统较为复杂的公司内部,不同的系统会使用不同的中间件产品。由于不同的消息中间件提供的api(applicationprogramminginterface,应用程序接口)接口不同且通常使用专有协议,当应用系统接入不同的消息中间件时,需要处理多种不同的技术细节,从而增加了维护的工作量。
技术实现要素:
本发明实施例提供一种消息处理方法、装置、设备及计算机可读存储介质,以解决对应用系统的维护工作量大的问题。
第一方面,本发明实施例提供了一种消息处理方法,应用于生产者代理,所述生产者代理中设置有至少两类sdk(softwaredevelopmentkit,软件开发工具包)接口;所述方法包括:
接收第一消息,其中,所述第一消息包括标记主题;
根据预设的配置信息,调用与所述标记主题对应的sdk接口;
通过调用到的sdk接口发送所述第一消息。
第二方面,本发明实施例还提供一种消息处理方法,应用于消费者代理,所述消费者代理中设置有至少两类软件开发工具包sdk接口;所述方法包括:
根据预设的配置信息,调用与目标的标记主题对应的sdk接口;
通过调用到的sdk接口,订阅和/或接收与所述目标的标记主题对应的第一消息;
其中,所述第一消息包括所述标记主题。
第三方面,本发明实施例还提供一种消息处理装置,应用于生产者代理,所述生产者代理中设置有至少两类sdk接口,包括:
第一接收模块,用于接收第一消息,其中,所述第一消息包括标记主题;
第一发送模块,用于根据预设的配置信息,调用与所述标记主题对应的sdk接口,以通过调用到的sdk接口发送所述第一消息。
第四方面,本发明实施例还提供一种消息处理装置,应用于消费者代理,所述消费者代理中设置有至少两类sdk接口,包括:
第一调用模块,用于根据预设的配置信息,调用与目标的标记主题对应的sdk接口;
第一获取模块,用于通过调用到的sdk接口,订阅和/或接收与所述目标的标记主题对应的第一消息;
其中,所述第一消息包括所述标记主题。
第五方面,本发明实施例还提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现包括如第一方面所述的消息处理方法中的步骤;或者实现包括如第二方面所述的消息处理方法中的步骤。
第六方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现包括如第一方面所述的消息处理方法中的步骤;或者实现包括如第二方面所述的消息处理方法中的步骤。
在本发明实施例中,通过生产者代理发送消息,通过消费者代理订阅和/或接收。当有消息中间件发生变化时,无需对生产者应用或者消费者应用进行修改,只需修改生产者代理和/或消费者代理即可。因此,利用本发明实施例的方案可降低对应用系统的维护工作量。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的消息处理方法的流程图之一;
图2是本发明实施例提供的消息处理方法的流程图之二;
图3是本发明实施例提供的消息处理系统的示意图;
图4是本发明实施例提供的消息处理示意图之一;
图5是本发明实施例提供的消息处理示意图之二;
图6是本发明实施例提供的消息处理装置的结构图之一;
图7是本发明实施例提供的消息处理装置的结构图之二;
图8是本发明实施例提供的电子设备的结构图之一;
图9是本发明实施例提供的电子设备的结构图之二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1是本发明实施例提供的消息处理方法的流程图,应用于生产者代理,所述生产者代理中设置有至少两类sdk接口。其中,所述sdk接口可为rabbitmq类sdk接口、kafka类sdk接口和rocketmq类sdk接口中的至少两种的组合。其中,在本发明实施例中,生产者包括发送消息到消息中间件的应用程序,消费者包括从消息中间件接收并处理消息的应用程序。如图1所示,所述方法包括以下步骤:
步骤101、接收第一消息,其中,所述第一消息包括标记主题。
在本发明实施例中,所述消息可以理解为由生产者应用发送给其他系统的数据单元,所述标记主题用于描述某一类型的消息,以区分不同的消息。不同的第一消息可以具有不同的标记主题,或者至少两个第一消息具有不同的标记主题。此外,所述第一消息中还可包括正文内容。
具体的,在此步骤中,生产者代理可接收生产者应用通过http(hypertexttransferprotocol,超文本传输协议)协议发送的所述第一消息。
步骤102、根据预设的配置信息,调用与所述标记主题对应的sdk接口。
其中,所述预设的配置信息指的是标记主题和sdk接口的对应关系。其中,标记主题和sdk接口的对应关系可以是一对一的关系,也可以是一对多或者多对多的关系。也就是说,对于某一标记主题的消息,可以通过一个或者多个sdk接口发送到消息中间件中。
在实际应用中,为提高处理灵活性和处理效率,所述预设的配置信息设置为根据用户触发进行修改设置、根据所述第一消息的数量进行动态修改设置或根据sdk接口的负载状态进行动态修改设置。
也即,可根据用户的操作设置该配置信息,或者根据第一消息的数量设置该配置信息(如当第一消息的数量超过某个阈值时可设置该配置信息,该阈值可根据实际需要调整),还可根据sdk接口的负载状态(如当sdk接口的负载超过某个阈值时可设置该配置信息,该阈值可根据实际需要调整)设置该配置信息。
需要补充说明的是,本实施例sdk接口的负载状态,还可以对应指的是消息中间件的负载状态。
具体的,在此步骤中,生产者代理确认所述预设的配置信息是否发生修改。若发生修改,生产者代理根据修改后的预设的配置信息修改所述标记主题与sdk接口的对应关系,其中,在修改所述标记主题与sdk接口的对应关系时,通过修改后的sdk接口发送所述第一消息;若未发生修改,生产者代理根据未修改的预设的配置信息维持所述标记主题与sdk接口的对应关系,其中,在维持所述标记主题与sdk接口的对应关系时,通过起始的sdk接口发送所述第一消息。其中,起始的sdk接口即在未修改的预设的配置信息维持标记主题与sdk接口的对应关系中记载的该标记主题对应的sdk接口。
步骤103、通过调用到的sdk接口发送所述第一消息。
在实际应用中,生产者代理可通过调用不同的sdk接口,可将消息发送到同一或者不同的消息中间件中。
在本发明实施例中,通过生产者代理发送消息,通过消费者代理订阅和/或接收。当有消息中间件发生变化时,无需对生产者应用或者消费者应用进行修改,只需修改生产者代理和/或消费者代理即可。因此,利用本发明实施例的方案可降低对应用系统的维护工作量。
在以上实施例的基础上,还可根据需要增设消息sdk接口或者对现有的sdk接口进行改变,例如删除,升级等。
具体的,当需要增设sdk接口时,增设sdk接口,其中,不同的标记主题对应不同的或相同的sdk接口,不同的sdk接口用于指向不同或相同的消息中间件。
如果需要删除某个sdk接口,对于某个待删除的sdk接口,那么可删除所述sdk接口与其关联的标记主题之间的对应关系,或者删除所述sdk接口,或者,还可同时删除所述sdk接口与其关联的标记主题之间的对应关系和所述sdk接口。
参见图2,图2是本发明实施例提供的消息处理方法的流程图,应用于消费者代理,所述消费者代理中设置有至少两类sdk接口,如图2所示,包括以下步骤:
步骤201、根据预设的配置信息,调用与目标的标记主题对应的sdk接口。
其中,所述预设的配置信息指的是标记主题和sdk接口的对应关系。其中,标记主题和sdk接口的对应关系可以是一对一的关系,也可以是一对多或者多对多的关系。也就是说,对于某一标记主题的消息,可以通过一个或者多个sdk接口发送到消息中间件中。
具体的,在此步骤中,消费者代理确认所述预设的配置信息是否发生修改。若发生修改,消费者代理根据修改后的预设的配置信息修改标记主题与sdk接口的对应关系,其中,在修改标记主题与sdk接口的对应关系时,通过修改后的sdk接口订阅和/或接收所述第一消息;若未发生修改,消费者代理根据未修改的预设的配置信息维持标记主题与sdk接口的对应关系,其中,在维持标记主题与sdk接口的对应关系时,通过起始的sdk接口订阅和/或接收所述第一消息。其中,起始的sdk接口即在未修改的预设的配置信息维持标记主题与sdk接口的对应关系中记载的标记主题对应的sdk接口。
步骤202、通过调用到的sdk接口,订阅和/或接收与所述目标的标记主题对应的第一消息。其中,所述第一消息包括所述标记主题。
在本发明实施例中,消费者代理通过不同的sdk接口订阅和/或接收目标的标记主题对应的消息。
在本发明实施例中,通过生产者代理发送消息,通过消费者代理订阅和/或接收。当有消息中间件发生变化时,无需对生产者应用或者消费者应用进行修改,只需修改生产者代理和/或消费者代理即可。因此,利用本发明实施例的方案可降低对应用系统的维护工作量。
在以上的实施例中,为提高处理灵活性和处理效率,所述预设的配置信息设置为根据用户触发进行修改设置、根据所述第一消息的数量进行动态修改设置或根据sdk接口的负载状态进行动态修改设置。
也即,可根据用户的操作设置该配置信息,或者根据第一消息的数量设置该配置信息(如当第一消息的数量超过某个阈值时可设置该配置信息,该阈值可根据实际需要调整),还可根据sdk接口的负载状态(如当sdk接口的负载超过某个阈值时可设置该配置信息,该阈值可根据实际需要调整)设置该配置信息。
需要补充说明的是,本实施例sdk接口的负载状态,还可以对应指的是消息中间件的负载状态。
在这种情况下,所述实施例还可包括:
根据所述预设的配置信息的修改设置增设sdk接口,其中,不同的标记主题对应不同的或相同的sdk接口,不同的sdk接口用于指向不同的或相同的消息中间件。
如果需要删除某个sdk接口,对于某个待删除的sdk接口,那么可删除所述sdk接口与其关联的标记主题之间的对应关系,或者删除所述sdk接口,或者,还可同时删除所述sdk接口与其关联的标记主题之间的对应关系和所述sdk接口。
在获取到第一消息后,可向消费者应用发送该第一消息。从消息中间件获取的消息,具有至少一个标记主题。那么,对于第一消费者应用的订阅请求,消费者代理可根据预设的标记主题和消费者应用的对应关系,确定所述第一消费者应用对应的目标标记主题。然后,从所述消息中选择具有所述目标标记主题的消息,作为所述正文内容。也就是说,消费者代理可根据消息的标记主题不同,将不同的消息发送到不同的消费者应用。具体的,消费者代理将第一消息中的正文内容通过http协议转发到第一消费者应用。
参见图3,图3是本发明实施例提供的消息处理系统的示意图。在图3中,该系统可包括:至少一个生产者应用301,生产者代理302,至少一个消息中间件303,消费者代理304,至少一个消费者应用305。
在该系统中,生产者应用301通过http协议发送消息到生产者代理302,发送的消息带有标记主题。生产者代理302接收消息,根据消息的标记主题的不同,在内部调用不同的消息中间件的sdk接口,发送消息到对应的消息中间件。其中,标记主题和消息中间件的对应关系可预先配置在生产者代理中。图3中示出了三种不同的消息中间件,在实际应用中,可能会有更多这样的消息中间件。每个消息中间件可以接收一个或者多个标记主题的消息。
消费者代理304通过不同的sdk接口从多个消息中间件接收消息。对于接收到的消息,消费者代理304根据消息的标记主题的不同,将消息通过http协议转发到不同的消费者应用。其中,标记主题和消费者应用的对应关系可预先配置在消费者代理中。
消费者应用305可向消费者代理304订阅不同的消息,同时,消费者应用305按照一定格式提供http接口,以便能够接收消费者代理转发的消息。
由于生产者代理和消费者代理内部集成了不同的消息中间件的sdk接口,封装了各自专有协议技术细节,对外通过标准的http接口协议与应用系统交互,从而可屏蔽不同消息中间件的接口差异。因此,对生产者应用或消费者应用来说,无需关注不同的消息中间件的接口协议细节。当应用需要对接或更换不同的消息中间件产品时,只需要在生产者代理或消费者代理中进行修改,而应用系统则几乎不需要进行改动便可完成对接,从而大幅减少了应用开发的工作量和复杂度。
例如,账务系统发送交易结果通知消息到rabbitmq集群,前端应用、反欺诈等系统从rabbitmq集群订阅消息并进行处理。由于rabbitmq容量不足,需要将消息中间件由rabbitmq更换成rocketmq。
如果按现有技术,账务系统、前端应用、反欺诈等系统都使用rabbitmq的sdk接口直接与消息中间件通信,假如要更换rabbitmq为rocketmq,则这些系统全部都要修改程序,以重新集成rocketmq的sdk接口,开发工作量很大。而使用本发明实施例的方案,只需要在生产者代理或消息者代理进行修改,账务系统、前端服务、反欺诈各系统几乎不需要修改就能够完成消息中间件的切换。具体过程如下。
一、初始阶段:
结合图4所示,账务系统和前端应用、反欺诈各系统经由生产者代理、消费者代理进行通信,消息中间件为rabbitmq。过程为:
(1)账务系统通过http协议发送交易结果通知消息到生产者代理,消息标记主题交易结果通知。
(2)生产者代理根据预先配置好的标记主题与消息中间件的对应关系(本实施例中为:将交易结果通知主题对应到rabbitmq),通过rabbitmq的sdk接口,将接收的消息转发到rabbitmq。
(3)消费者代理通过rabbitmq的sdk接口,从rabbitmq中拉取消息,根据预先配置好的消费者应用与标记主题的订阅关系(在本实施例中,假设前端应用、反欺诈两个系统都订阅了交易结果通知主题),将交易结果通知消息分别转发到前端应用、反欺诈系统。
(4)前端应用、反欺诈两个系统分别处理交易结果通知消息。
二、改造阶段:
当交易结果通知消息增加到一定量级,而rabbitmq的容量不足、需要切换为rocketmq时,只需对生产者代理、消费者代理进行改造。结合图5所示,过程为:
(1)在生产者代理:集成rocketmq的sdk接口(rocketsdk接口),实现转发消息到rocketmq的功能。
(2)在消费者代理:集成rocketmq的sdk接口(rocketsdk接口),实现从rocketmq拉取消息的功能。
三、切换阶段:
(1)修改系统配置,在生产者代理中解除交易结果通知主题和rabbitmq的关联关系,并将交易结果通知主题重新关联到rocketmq集群。重启生产者代理和消费者代理以加载新的配置。
(2)生产者代理从账务系统接收交易结果通知消息,根据新的配置,将消息转发到rocketmq集群。
(3)消费者代理根据新的配置,从rocketmq集群中拉取交易结果通知消息,并分别转发到前端应用、反欺诈系统。
通过以上描述可以看出,在本发明实施例中,通过使用生产者代理和消费者代理对账务系统、前端应用、反欺诈系统屏蔽了不同消息中间件的接口细节。当需要将消息中间件从rabbitmq切换到rocketmq时,只需要修改生产者代理和消费者代理,无须对三个应用系统(账务系统、前端应用、反欺诈)进行任何改动,即可完成切换,减少了三个应用系统改造的工作量。生产者代理和消费者代理对每种消息中间件只需要集成一次,即可用于不同的应用系统。在首次集成完rocketmq之后,其它应用系统也可获得消息主题从rabbitmq切换到rocketmq的便利性。例如,反欺诈系统原本通过rabbitmq将欺诈结果通知给前端应用,现需要将欺诈通知主题也切换到rocketmq,则只要更改欺诈通知主题和消息中间件的关联关系即可,大幅减少了应用开发工作量和维护复杂度。
本发明实施例还提供了一种消息处理装置,应用于生产者代理,所述生产者代理中设置有至少两类sdk接口。参见图6,图6是本发明实施例提供的消息处理装置的结构图。由于消息处理装置解决问题的原理与本发明实施例中消息处理方法相似,因此该消息处理装置的实施可以参见方法的实施,重复之处不再赘述。
如图6所示,消息处理装置600包括:第一接收模块601,用于接收第一消息,其中,所述第一消息包括标记主题;第一发送模块602,用于根据预设的配置信息,调用与所述标记主题对应的sdk接口,以通过调用到的sdk接口发送所述第一消息。
其中,所述sdk接口为rabbitmq类sdk接口、kafka类sdk接口和rocketmq类sdk接口中的至少两种的组合。
可选的,所述第一发送模块602可包括:
确认子模块,用于确认所述预设的配置信息是否发生修改;第一发送子模块,用于若发生修改,根据修改后的预设的配置信息修改所述标记主题与sdk接口的对应关系,其中,在修改所述标记主题与sdk接口的对应关系时,通过修改后的sdk接口发送所述第一消息;第二发送子模块,用于若未发生修改,根据未修改的预设的配置信息维持所述标记主题与sdk接口的对应关系,其中,在维持所述标记主题与sdk接口的对应关系时,通过起始的sdk接口发送所述第一消息。
可选的,所述预设的配置信息设置为根据用户触发进行修改设置、根据所述第一消息的数量进行动态修改设置或根据sdk接口的负载状态进行动态修改设置。
可选的,所述装置还可包括:处理模块,用于增设sdk接口,其中,不同的标记主题对应不同的或相同的sdk接口,不同的sdk接口用于指向不同或相同的消息中间件。
可选的,所述装置还可包括以下一个或者两个模块:
第一删除模块,用于当需要删除sdk接口时,删除所述sdk接口与其关联的标记主题之间的对应关系;
第二删除模块,用于当需要删除sdk接口时,删除所述sdk接口。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
本发明实施例还提供了一种消息处理装置,应用于消费者代理,所述消费者代理中设置有至少两类sdk接口。参见图7,图7是本发明实施例提供的消息处理装置的结构图。由于消息处理装置解决问题的原理与本发明实施例中消息处理方法相似,因此该消息处理装置的实施可以参见方法的实施,重复之处不再赘述。
如图7所示,消息处理装置700包括:第一调用模块701,用于根据预设的配置信息,调用与目标的标记主题对应的sdk接口;第一获取模块702,用于通过调用到的sdk接口,订阅和/或接收与所述目标的标记主题对应的第一消息;其中,所述第一消息包括所述标记主题。
可选的,所述sdk接口为rabbitmq类sdk接口、kafka类sdk接口和rocketmq类sdk接口中的至少两种的组合。
可选的,所述第一调用模块701可包括:
确认子模块,用于确认所述预设的配置信息是否发生修改;
第一发送子模块,用于若发生修改,根据修改后的预设的配置信息修改标记主题与sdk接口的对应关系,其中,在修改标记主题与sdk接口的对应关系时,通过修改后的sdk接口订阅和/或接收所述第一消息;
第二发送子模块,用于若未发生修改,根据未修改的预设的配置信息维持标记主题与sdk接口的对应关系,其中,在维持标记主题与sdk接口的对应关系时,通过起始的sdk接口订阅和/或接收所述第一消息。
可选的,所述预设的配置信息设置为根据用户手动进行修改设置、根据第一消息的数量进行动态修改设置或根据sdk接口的负载状态进行动态修改设置。
需要补充说明的是,本实施例sdk接口的负载状态,还可以对应指的是消息中间件的负载状态。
可选的,所述装置还可包括:处理模块,用于根据所述预设的配置信息的修改设置增设sdk接口,其中,不同的标记主题对应不同的或相同的sdk接口,不同的sdk接口用于指向不同的或相同的消息中间件。
可选的,所述装置还可包括以下一个或者两个模块:
第一删除模块,用于当需要删除sdk接口时,删除sdk接口与其关联的标记主题之间的对应关系;
第二删除模块,用于当需要删除sdk接口时,删除所述sdk接口。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
如图8所示,本发明实施例的电子设备,应用于生产者代理,所述生产者代理中设置有至少两类sdk接口;包括:处理器800,用于读取存储器802中的程序,执行下列过程:
接收第一消息,其中,所述第一消息包括标记主题;
根据预设的配置信息,调用与所述标记主题对应的sdk接口;
通过调用到的sdk接口发送所述第一消息。
收发机801,用于在处理器800的控制下接收和发送数据。
其中,在图8中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器800代表的一个或多个处理器和存储器802代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机801可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器800负责管理总线架构和通常的处理,存储器802可以存储处理器800在执行操作时所使用的数据。
处理器800负责管理总线架构和通常的处理,存储器802可以存储处理器800在执行操作时所使用的数据。
处理器800还用于读取所述程序,执行如下步骤:
确认所述预设的配置信息是否发生修改;
若发生修改,根据修改后的预设的配置信息修改所述标记主题与sdk接口的对应关系,其中,在修改所述标记主题与sdk接口的对应关系时,通过修改后的sdk接口发送所述第一消息;
若未发生修改,根据未修改的预设的配置信息维持所述标记主题与sdk接口的对应关系,其中,在维持所述标记主题与sdk接口的对应关系时,通过起始的sdk接口发送所述第一消息。
其中,所述预设的配置信息设置为根据用户触发进行修改设置、根据所述第一消息的数量进行动态修改设置或根据sdk接口的负载状态进行动态修改设置。
处理器800还用于读取所述程序,执行如下步骤:
增设sdk接口,其中,不同的标记主题对应不同的或相同的sdk接口,不同的sdk接口用于指向不同或相同的消息中间件。
当需要删除sdk接口时,处理器800还用于读取所述程序,执行如下至少一个步骤:
删除所述sdk接口与其关联的标记主题之间的对应关系;
删除所述sdk接口。
如图9所示,本发明实施例的电子设备,应用于消费者代理,所述消费者代理中设置有至少两类sdk接口,包括:处理器900,用于读取存储器920中的程序,执行下列过程:
根据预设的配置信息,调用与目标的标记主题对应的sdk接口;
通过调用到的sdk接口,订阅和/或接收与所述目标的标记主题对应的第一消息;
其中,所述第一消息包括所述标记主题。
收发机910,用于在处理器900的控制下接收和发送数据。
其中,在图9中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器900代表的一个或多个处理器和存储器920代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机910可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器900负责管理总线架构和通常的处理,存储器920可以存储处理器900在执行操作时所使用的数据。
处理器900负责管理总线架构和通常的处理,存储器920可以存储处理器900在执行操作时所使用的数据。
处理器900还用于读取所述程序,执行如下步骤:
确认所述预设的配置信息是否发生修改;
若发生修改,根据修改后的预设的配置信息修改标记主题与sdk接口的对应关系,其中,在修改标记主题与sdk接口的对应关系时,通过修改后的sdk接口定制和/或接收所述第一消息;
若未发生修改,根据未修改的预设的配置信息维持标记主题与sdk接口的对应关系,其中,在维持标记主题与sdk接口的对应关系时,通过起始的sdk接口定制和/或接收所述第一消息。
可选的,所述预设的配置信息设置为根据用户触发进行修改设置、根据第一消息的数量进行动态修改设置或根据sdk接口的负载状态进行动态修改设置。
需要补充说明的是,本实施例sdk接口的负载状态,还可以对应指的是消息中间件的负载状态。
处理器900还用于读取所述程序,执行如下步骤:
根据所述预设的配置信息的修改设置增设sdk接口,其中,不同的标记主题对应不同的或相同的sdk接口,不同的sdk接口用于指向不同的或相同的消息中间件。
当需要删除sdk接口时,处理器900还用于读取所述程序,执行如下至少一个步骤:
删除sdk接口与其关联的标记主题之间的对应关系;
删除所述sdk接口。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述消息处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。根据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
1.一种消息处理方法,应用于生产者代理,其特征在于,所述生产者代理中设置有至少两类软件开发工具包sdk接口;所述方法包括:
接收第一消息,其中,所述第一消息包括标记主题;
根据预设的配置信息,调用与所述标记主题对应的sdk接口;
通过调用到的sdk接口发送所述第一消息。
2.根据权利要求1所述的方法,其特征在于,所述根据预设的配置信息,调用与所述标记主题对应的sdk接口的步骤,包括:
确认所述预设的配置信息是否发生修改;
若发生修改,根据修改后的预设的配置信息修改所述标记主题与sdk接口的对应关系,其中,在修改所述标记主题与sdk接口的对应关系时,通过修改后的sdk接口发送所述第一消息;
若未发生修改,根据未修改的预设的配置信息维持所述标记主题与sdk接口的对应关系,其中,在维持所述标记主题与sdk接口的对应关系时,通过起始的sdk接口发送所述第一消息。
3.根据权利要求1或2所述的方法,其特征在于,所述预设的配置信息设置为根据用户触发进行修改设置、根据所述第一消息的数量进行动态修改设置或根据sdk接口的负载状态进行动态修改设置。
4.根据权利要求3所述的方法,其特征在于,在所述预设的配置信息根据用户触发进行修改设置、根据所述第一消息的数量进行动态修改设置或根据sdk接口的负载状态进行动态修改设置时,所述方法还包括:
增设sdk接口,其中,不同的标记主题对应不同的或相同的sdk接口,不同的sdk接口用于指向不同或相同的消息中间件。
5.根据权利要求4所述的方法,其特征在于,当需要删除sdk接口时,所述方法还包括以下至少一个步骤:
删除所述sdk接口与其关联的标记主题之间的对应关系;
删除所述sdk接口。
6.一种消息处理方法,应用于消费者代理,其特征在于,所述消费者代理中设置有至少两类软件开发工具包sdk接口;所述方法包括:
根据预设的配置信息,调用与目标的标记主题对应的sdk接口;
通过调用到的sdk接口,订阅和/或接收与所述目标的标记主题对应的第一消息;
其中,所述第一消息包括所述标记主题。
7.根据权利要求6所述的方法,其特征在于,所述根据预设的配置信息,调用与目标的标记主题对应sdk接口的步骤,包括:
确认所述预设的配置信息是否发生修改;
若发生修改,根据修改后的预设的配置信息修改标记主题与sdk接口的对应关系,其中,在修改标记主题与sdk接口的对应关系时,通过修改后的sdk接口订阅和/或接收所述第一消息;
若未发生修改,根据未修改的预设的配置信息维持标记主题与sdk接口的对应关系,其中,在维持标记主题与sdk接口的对应关系时,通过起始的sdk接口订阅和/或接收所述第一消息。
8.根据权利要求6或7所述的方法,其特征在于,所述预设的配置信息设置为根据用户触发进行修改设置、根据第一消息的数量进行动态修改设置或根据sdk接口的负载状态进行动态修改设置。
9.根据权利要求8所述的方法,其特征在于,在所述预设的配置信息根据用户触发进行修改设置、根据所述第一消息的数量进行动态修改设置或根据sdk接口的负载状态进行动态修改设置时,所述方法还包括:
根据所述预设的配置信息的修改设置增设sdk接口,其中,不同的标记主题对应不同的或相同的sdk接口,不同的sdk接口用于指向不同的或相同的消息中间件。
10.根据权利要求9所述的方法,其特征在于,当需要删除sdk接口时,所述方法还包括以下至少一个步骤:
删除sdk接口与其关联的标记主题之间的对应关系;
删除所述sdk接口。
11.一种消息处理装置,应用于生产者代理,所述生产者代理中设置有至少两类sdk接口,其特征在于,包括:
第一接收模块,用于接收第一消息,其中,所述第一消息包括标记主题;
第一发送模块,用于根据预设的配置信息,调用与所述标记主题对应的sdk接口,以通过调用到的sdk接口发送所述第一消息。
12.根据权利要求11所述的消息处理装置,其特征在于,所述sdk接口为rabbitmq类sdk接口、kafka类sdk接口和rocketmq类sdk接口中的至少两种的组合。
13.一种消息处理装置,应用于消费者代理,所述消费者代理中设置有至少两类sdk接口,其特征在于,包括:
第一调用模块,用于根据预设的配置信息,调用与目标的标记主题对应的sdk接口;
第一获取模块,用于通过调用到的sdk接口,订阅和/或接收与所述目标的标记主题对应的第一消息;
其中,所述第一消息包括所述标记主题。
14.根据权利要求13所述的消息处理装置,其特征在于,所述sdk接口为rabbitmq类sdk接口、kafka类sdk接口和rocketmq类sdk接口中的至少两种的组合。
15.一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;其特征在于,
所述处理器,用于读取存储器中的程序实现包括如权利要求1至5中任一项所述的消息处理方法中的步骤;或者实现包括如权利要求6至10中任一项所述的消息处理方法中的步骤。
16.一种计算机可读存储介质,用于存储计算机程序,其特征在于,所述计算机程序被处理器执行时实现包括如权利要求1至5中任一项所述的消息处理方法中的步骤;或者实现包括如权利要求6至10中任一项所述的消息处理方法中的步骤。
技术总结