CN114726809A - 多租户路由方法、装置、设备、存储介质及程序产品 - Google Patents
多租户路由方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN114726809A CN114726809A CN202210650130.4A CN202210650130A CN114726809A CN 114726809 A CN114726809 A CN 114726809A CN 202210650130 A CN202210650130 A CN 202210650130A CN 114726809 A CN114726809 A CN 114726809A
- Authority
- CN
- China
- Prior art keywords
- message
- target
- routing
- preset plug
- tenant
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种多租户路由方法、装置、设备、存储介质及程序产品,属于消息路由技术领域。该方法包括:通过消息集群的预设插件,接收生产者发送的消息;通过预设插件,对消息进行解析处理,得到消息中的目标标识;目标标识为多个租户中目标租户对应的标识;通过预设插件,基于目标标识和数据库存储的路由信息,在多个主题消息队列中确定目标主题消息队列;通过预设插件,将消息发送至目标主题消息队列。本发明提供的多租户路由方法、装置、设备、存储介质及程序产品用于降低部署消息集群的硬件资源成本。
Description
技术领域
本发明涉及消息路由技术领域,尤其涉及一种多租户路由方法、装置、设备、存储介质及程序产品。
背景技术
目前,多租户网站的运行版本可以从旧版本切换至新版本。为了防止新版本存在故障,影响网站的租户正常使用网站,通常需要先将少数租户的数据流量切换至新版本上,以观察使用效果,然后逐步将剩余租户的数据流量切换至新版本上。
在相关技术中,将租户的流量切换使用到新版本的过程中,包括:生产者在生产出消息之后,通过配置代码,从远程字典服务(Remote Dictionary Server,Redis)配置中心获取灰度路由策略,并基于灰度路由策略和消息,在多个RabbitMQ集群中确定目标RabbitMQ集群,并向目标RabbitMQ集群发送消息,使租户能够从目标RabbitMQ集群中得到消息、并消费该消息,从而实现将租户的流量切换新版本上。其中,多个RabbitMQ集群的总数量和多个租户的总数量相同。
在上述相关技术中,由于多个RabbitMQ集群的总数量与多个租户的总数量相同,因此在存在多个租户的情况下,需要在至少一个电子设备中部署多个RabbitMQ集群,使得部署RabbitMQ集群的硬件资源成本较高。
发明内容
本发明提供一种多租户路由方法、装置、设备、存储介质及程序产品,用以解决现有技术中硬件资源的部署成本和运维成本均较高的缺陷,实现降低硬件资源的部署成本和运维成本。
本发明提供一种多租户路由方法,应用于电子设备,电子设备中包括消息集群,消息集群中包括预设插件、数据库和多个主题消息队列;包括:
通过预设插件,接收生产者发送的消息;
通过预设插件,对消息进行解析处理,得到消息中的目标标识;目标标识为多个租户中目标租户对应的标识;
通过预设插件,基于目标标识和数据库存储的路由信息,在多个主题消息队列中确定目标主题消息队列;
通过预设插件,将消息发送至目标主题消息队列。
根据本发明提供的一种多租户路由方法,通过预设插件,在数据库存储的路由信息中确定目标标识对应的目标主题信息;路由信息中包括多个标识和与多个标识对应的多个主题信息,多个标识中包括目标标识,多个主题信息中包括目标主题信息;通过预设插件,将多个主题消息队列中与目标主题信息对应的主题消息队列,确定为目标主题消息队列。
根据本发明提供的一种多租户路由方法,通过预设插件,在数据库存储的路由信息中确定目标标识对应的目标主题信息,包括:通过预设插件中的路由配置服务,基于目标标识,在数据库存储的路由信息中确定目标标识对应的目标主题信息。
根据本发明提供的一种多租户路由方法,还包括:通过所述预设插件,连接配置中心,并获取配置中心存储的灰度路由策略;通过预设插件,基于映射组匹配方法对灰度路由策略进行封装处理,得到路由信息,并将路由信息存储至数据库。
根据本发明提供的一种多租户路由方法,还包括:通过预设插件的访问接口,更新配置中心存储的灰度路由策略。
根据本发明提供的一种多租户路由方法,通过预设插件,将消息发送至目标主题消息队列,包括:通过预设插件将消息的当前交换类型修改为消息集群的原始交换类型;通过消息集群中的交换机,基于原始交换类型,将消息发送至目标主题消息队列。
本发明还提供一种多租户路由装置,应用于电子设备,电子设备中包括消息集群,消息集群中包括预设插件、数据库和多个主题消息队列;包括:
接收模块,用于通过预设插件接收生产者发送的消息;
处理模块,用于通过预设插件对消息进行解析处理,得到消息中的目标标识;目标标识为多个租户中目标租户对应的标识;
处理模块,还用于通过预设插件,基于目标标识和数据库存储的路由信息,在多个主题消息队列中确定目标主题消息队列;
发送模块,还用于通过预设插件,将消息发送至目标主题消息队列。
本发明提供的一种多租户路由装置,处理模块具体用于:
通过预设插件,在数据库存储的路由信息中确定目标标识对应的目标主题信息;路由信息中包括多个标识和与多个标识对应的多个主题信息,多个标识中包括目标标识,多个主题信息中包括目标主题信息;通过预设插件,将多个主题消息队列中与目标主题信息对应的主题消息队列,确定为目标主题消息队列。
本发明提供的一种多租户路由装置,处理模块具体用于:
通过预设插件中的路由配置服务,基于目标标识,在数据库存储的路由信息中确定目标标识对应的目标主题信息。
本发明提供的一种多租户路由装置,还包括:
获取模块,通过所述预设插件,连接配置中心,并获取所述配置中心存储的灰度路由策略;通过预设插件,基于映射组匹配方法对灰度路由策略进行封装处理,得到路由信息,并将路由信息存储至数据库。
本发明提供的一种多租户路由装置,还包括:
更新模块,用于通过预设插件的访问接口,更新配置中心存储的灰度路由策略。
本发明提供的一种多租户路由装置,发送模块具体用于:
通过预设插件将消息的当前交换类型修改为消息集群的原始交换类型;
通过消息集群中的交换机,基于原始交换类型,将消息发送至目标主题消息队列。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如上述任一种多租户路由方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种多租户路由方法。
本发明还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如上述任一种多租户路由方法。
本发明提供的多租户路由方法、装置、设备、存储介质及程序产品,能够通过消息集群中的预设插件,对消息进行解析处理,得到消息中的目标标识,通过预设插件,基于目标标识和预先存储在数据库中的路由信息,在多个主题消息队列中确定目标主题消息队列,通过预设插件,将消息发送至目标主题消息队列,使得能够在部署一个消息集群的情况下,向多个租户中的任意一个租户发送消息,降低了部署消息集群的硬件资源成本。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是相关技术中提供的多租户路由方法对应的流程框图;
图2是本发明提供的多租户路由方法对应的流程框图;
图3是本发明提供的多租户路由方法的流程图;
图4是本发明提供的多租户路由装置的结构示意图之一;
图5是本发明提供的多租户路由装置的结构示意图之二;
图6是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先对本发明涉及的专业术语进行说明。
生产者,基于调用请求生产消息的客户端应用程序。
消息集群,用于将来自生产者的消息,发送给租户。
租户,用于消费该消息的客户端应用程序。
接着结合图1对相关技术进行详细说明。
图1是相关技术中提供的多租户路由方法对应的流程框图。如图1所示,包括:生产者、配置中心、多个消息集群和多个租户。
配置中心为Redis配置中心,消息集群为RabbitMQ集群,一个消息集群对应于一个租户。需要说明的是,图1是以多个消息集群的总数量和多个租户的总数量均是3为例进行说明的。
在图1中,生产者基于调用请求产生消息,并通过配置代码,从Redis配置中心获取灰度路由策略,进而基于消息和灰度路由策略,在多个RabbitMQ集群中确定目标RabbitMQ集群,并向目标RabbitMQ集群发送消息。目标RabbitMQ集群在接收到消息之后,向租户发送消息,使得租户能够消费该消息。
在图1所示的路由方法中,多个RabbitMQ集群的总数量与多个租户的总数量相同,因此在有多个租户的情况下,需要在至少一个电子设备中部署多个RabbitMQ集群,使得部署RabbitMQ集群的硬件资源成本。
在本申请中,为了降低部署RabbitMQ集群的硬件资源成本,发明人想到,在有多个租户的情况下,通过一个RabbitMQ集群实现将来自生产者的消息发送给目标租户,从而降低部署RabbitMQ集群的硬件资源成本。
图2是本发明提供的多租户路由方法对应的流程框图。如图2所示,包括:生产者、消息集群和多个租户。需要说明的是,图2是以多个主题消息队列的总数量和多个租户的总数量均是3为例进行说明的。
消息集群中包括数据库、预设插件和多个主题消息队列。其中,一个主题消息队列对应于一个租户。
在本发明中,消息集群例如可以为RabbitMQ集群,数据库例如为Mnesia数据库。
预设插件在接收到来自生产者的消息之后,基于消息中的目标租户的目标标识和数据库中存储的路由信息,在多个主题消息队列中确定目标主题消息队列,并将消息发送至目标主题消息队列。
在本发明中,消息集群的数量为1,因此部署一个消息集群即可实现多个租户的路由,降低了部署消息集群的硬件资源成本。
图3是本发明提供的多租户路由方法的流程图。如图3所示,该方法包括:
步骤S301,通过预设插件,接收生产者发送的消息。
可选地,本发明的执行主体可以为电子设备,也可以为设置在电子设备中的多租户路由装置。路由装置可以通过软件和/或硬件的结合来实现。例如路由装置可以为消息集群。
预设插件是在电子设备包括以下内容的情况下进行开发得到的:必要基础库(例如Erlang/OTP 24、Elixir);构建工具(例如rebar3);编译工具(例如GNU make 4);开发工具(例如IDEA);使用分布式版本控制系统(git)工具克隆的rabbitmq-public-umbrella软件包;项目建立源代码文件(Source Code File,src)的路径;在根路径执行命令(例如gmake co)生成依赖包。
可选地,能够采用如下方法在消息集群中设置预设插件:
使用编译工具对编写的源代码文件进行整体构建,会在编译工具对应的ebin目录下生成对应的beam编译文件;
使用构建工具将beam编译文件封装成二进制文件(例如rabbitmq_canary_router_exchange.ez);该二进制文件为预设插件;
在消息集群中,使用命令(例如rabbitmq-plugins enable rabbitmq_canary_router_exchange)挂载预设插件;
并在电子设备显示的RabbitMQ管理界面中建立x-canary-router类型的交换机(exchange),使生产者连接创建的交换机,从而实现在消息集群中部署预设插件。
在一些实施例中,可以采用如下方法得到x-canary-router类型:源代码文件包括第一源码文件(rabbit_canary_router_message_handler.erl);
第一源码文件的类型为RabbitMQ类型的扩展类,第一源码文件通过引用RabbitMQ暴露的behaviour方法,扩展原有的rabbit_exchange_type类型,在扩展rabbit_exchange_type类型之后,能够在RabbitMQ管理界面增加x-canary-router类型。
在本发明中,编写route方法作为x-canary-router类型的入口,route方法的入参是RabbitMQ的payload参数,route方法会接收每一个路由到(即传输到)x-canary-router类型的消息,并且会启动一个新的RabbitMQ的进程来接收消息。
步骤S302,通过预设插件,对消息进行解析处理,得到消息中的目标标识;目标标识为多个租户中的目标租户的标识。
在一些实施例中,预设插件中包括基于Erlang编写的服务(该服务中包括JSX等解析库,其中,JSX为一种JavaScript的语法扩展);通过Erlang的工具库对传递过来的消息的负载(payload)做json格式的解析,将负载解析成一个映射组,获取映射组中的headers列表,并通过映射组匹配(MAP)方法从headers列表中获取消息中的目标标识。
步骤S303,通过预设插件,基于目标标识和预先存储在数据库中的路由信息,在多个主题消息队列中确定目标主题消息队列。
数据库为上述Erlang自带的数据库。
路由信息中包括多个标识和与多个标识对应的多个主题信息。
多个标识为多个租户对应的标识,每个租户对应于一个标识。
多个主题信息为多个主题消息队列对应的信息,每个主题信息对应于一个主题消息队列。
在一些实施例中,步骤S303具体包括:通过预设插件,在数据库中的路由信息中确定目标标识对应的目标主题信息;多个标识中包括目标标识,多个主题信息中包括目标主题信息;
通过预设插件,将多个主题消息队列中与目标主题信息对应的主题消息队列,确定为目标主题消息队列。
在一些实施例中,通过预设插件,在数据库中的路由信息中确定目标标识对应的目标主题信息,包括:通过预设插件中的路由配置服务(rabbit_canary_router_config_server),基于目标标识,在数据库存储的路由信息中确定目标标识对应的目标主题信息。
具体的,路由配置服务中包括预先配置好的查找可以集群方法函数(find_available_clusters),该查找可以集群方法函数可以基于目标标识,在数据库的路由信息中确定目标标识对应的目标主题信息。
步骤S304,通过预设插件,将消息发送至目标主题消息队列。
目标主题消息队列中的消息用于使目标租户获取。
在一些实施例中,通过预设插件将消息的当前交换类型修改为消息集群的原始交换类型;
基于原始交换类型,将消息发送至目标主题消息队列。
其中,当前交换类型为x-canary-router类型。原始交换类型例如为direct类型。
基于原始交换类型,将消息发送至目标主题消息队列,包括:
将交换机的类型修改为原始交换类型,基于原始交换类型的交换机,将消息发送至目标主题消息队列,调用RabbitMQ本身的 match_routing_key方法,基于match_routing_key方法将目标主题消息队列中的消息传递下去。
为了使的x-canary-router类型与消息集群匹配,实现将消息发送至目标主题消息队列,因此需要通过预设插件将当前交换类型修改为将消息集群的原始交换类型,以通过消息集群中的交换机将消息发送至目标主题消息队列。
下面结合上述图1和图2对交换机进行说明。在图1中,交换机位于生成者和消息集群之间,用于基于灰度路由策略和消息,在多个消息集群中确定目标消息集群,并向目标消息集群发送消息。在图2中,交换机位于预设插件和多个主题消息队列之间,用于在将消息的当前交换类型修改为消息集群的原始交换类型之后,基于消息集群的预设方法(例如match_routing_key)将消息发送至目标主题消息队列。
在通过预设插件将消息发送至目标主题消息队列之后,还可以包括:通过消息集群,将目标主题消息队列中的消息发送至目标租户。
在图3实施例提供的方法中,通过消息集群中包括预设插件,通过预设插件可以将来自生成者的消息,发送至目标租户对应的目标主题消息队列中,使得目标租户可以获取到消息,即可以实现仅部署一个消息集群,就能将消息发送给目标租户的目的,降低了部署消息集群的硬件资源成本,进而降低了对消息集群的运维成本。
与现有技术不同,在图1的方法中,需要采用与生产者的机器语言相同的机器语言进行代码编写,得到配置代码,增加了在业务进程中对生产者的侵入性,降低了生产者执行业务进程的安全性,当生产者的机器语言不同时,需要采用不同的机器语言得到配置代码,导致业务复杂性较高。而在本申请中,路由信息存储在消息集群中的数据库内,无需进行代码编写,因此在业务进程中对生产者无侵入性,提高了生产者执行业务进程的安全性,当生产者的机器语言不同时,也无需采用不同的机器语言得到配置代码,降低了业务复杂性。
可选地,数据库中的路由信息为基于配置中心存储的灰度路由策略得到的。
在本发明中配置中心例如为Redis配置中心。
在一些实施例中,可以采用如下方法得到路由信息,并将路由信息存储至数据库中:通过预设插件,连接配置中心,并获取所述配置中心存储的灰度路由策略;通过预设插件,基于MAP方法对灰度路由策略进行封装处理,得到路由信息,并将路由信息存储至数据库中。
在本发明中,预设插件可以直接连接配置中心,并从配置中心获取灰度路由策略,不仅无需采用与生产者的机器语言相同的机器语言进行代码编写,降低了业务复杂性,而且还可以避免在业务进程中对代码的侵入性,提高了生产者执行业务进程的安全性。
此外,在本发明中,在存在向多个目标租户发送的多个消息时,基于数据库存储的路由信息,将多个消息发送至多个目标租户对应的多个目标主题消息队列中,无需重复从配置中心获取灰度路由策略,提高向多个目标主题消息队列发送多个消息的效率。
在一些实施例中,通过预设插件的访问接口(Redis访问接口),更新配置中心存储的灰度路由策略。
其中,更新包括以下至少一种:
删除配置中心已经存储的灰度路由策略;
修改配置中心已经存储的灰度路由策略;
在配置中心添加新的灰度路由策略。
在一些实施例中,预设插件还可以清空数据库中存储的灰度路由策略,并重新基于Redis连接实例从配置中心获取灰度路由策略。
下面对本发明提供的多租户路由装置进行描述,下文描述的多租户路由装置与上文描述的多个租户的路由方法可相互对应参照。
图4是本发明提供的多租户路由装置的结构示意图之一。路由装置应用于电子设备,电子设备中包括消息集群,消息集群中包括预设插件、数据库和多个主题消息队列。
如图4所示,多租户路由装置包括:
接收模块110,用于通过预设插件接收生产者发送的消息;
处理模块120,用于通过预设插件对消息进行解析处理,得到消息中的目标标识;目标标识为多个租户中目标租户对应的标识;
处理模块120,还用于通过预设插件,基于目标标识和数据库存储的路由信息,在多个主题消息队列中确定目标主题消息队列;
发送模块130,还用于通过预设插件,将消息发送至目标主题消息队列。
在发明提供的多租户路由装置具有和上述多个租户的路由方法相同的有益效果,此处不再赘述。
图5是本发明提供的多租户路由装置的结构示意图之二。在图4的基础上,如图5所示,多租户路由装置还包括:
获取模块140,用于通过所述预设插件,连接配置中心,并获取所述配置中心存储的灰度路由策略;通过预设插件,基于映射组匹配方法对灰度路由策略进行封装处理,得到路由信息,并将路由信息存储至数据库。
本发明提供的一种多租户路由装置,还包括:
更新模块150,用于通过预设插件的访问接口,更新配置中心存储的灰度路由策略。
本发明提供的一种多租户路由装置,处理模块120具体用于:通过预设插件,在数据库存储的路由信息中确定目标标识对应的目标主题信息;路由信息中包括多个标识和与多个标识对应的多个主题信息,多个标识中包括目标标识,多个主题信息中包括目标主题信息;通过预设插件,将多个主题消息队列中与目标主题信息对应的主题消息队列,确定为目标主题消息队列。
本发明提供的一种多租户路由装置,处理模块120具体用于:通过预设插件中的路由配置服务,基于目标标识,在数据库存储的路由信息中确定目标标识对应的目标主题信息。
本发明提供的一种多租户路由装置,发送模块130具体用于:通过预设插件将消息的当前交换类型修改为消息集群的原始交换类型;通过消息集群中的交换机,基于原始交换类型,将消息发送至目标主题消息队列。
在发明提供的多租户路由装置和上述多个租户的路由方法的有益效果相同,此处不再赘述。
图6是本发明提供的电子设备的结构示意图。如图6所示,该电子设备可以包括:处理器(processor)210、通信接口(Communications Interface)220、存储器(memory)230和通信总线240,其中,处理器210,通信接口220,存储器230通过通信总线240完成相互间的通信。处理器210可以调用存储器230中的逻辑指令,以执行多租户路由方法,该方法包括:通过预设插件,接收生产者发送的消息;通过预设插件,对消息进行解析处理,得到消息中的目标标识;目标标识为多个租户中目标租户对应的标识;通过预设插件,基于目标标识和数据库存储的路由信息,在多个主题消息队列中确定目标主题消息队列;通过预设插件,将消息发送至目标主题消息队列。
此外,上述的存储器230中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,计算机程序被处理器执行时,计算机能够执行上述各方法所提供的多租户路由方法,该方法包括:通过预设插件,接收生产者发送的消息;通过预设插件,对消息进行解析处理,得到消息中的目标标识;目标标识为多个租户中目标租户对应的标识;通过预设插件,基于目标标识和数据库存储的路由信息,在多个主题消息队列中确定目标主题消息队列;通过预设插件,将消息发送至目标主题消息队列。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的多租户路由方法,该方法包括:通过预设插件,接收生产者发送的消息;通过预设插件,对消息进行解析处理,得到消息中的目标标识;目标标识为多个租户中目标租户对应的标识;通过预设插件,基于目标标识和数据库存储的路由信息,在多个主题消息队列中确定目标主题消息队列;通过预设插件,将消息发送至目标主题消息队列。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种多租户路由方法,其特征在于,应用于电子设备,所述电子设备中包括消息集群,所述消息集群中包括预设插件、数据库和多个主题消息队列;所述方法包括:
通过所述预设插件,接收生产者发送的消息;
通过所述预设插件,对所述消息进行解析处理,得到所述消息中的目标标识;所述目标标识为多个租户中目标租户对应的标识;
通过所述预设插件,基于所述目标标识和所述数据库存储的路由信息,在所述多个主题消息队列中确定目标主题消息队列;
通过所述预设插件,将所述消息发送至所述目标主题消息队列。
2.根据权利要求1所述的多租户路由方法,其特征在于,所述通过所述预设插件,基于所述目标标识和所述数据库存储的路由信息,在所述多个主题消息队列中确定目标主题消息队列,包括:
通过所述预设插件,在所述数据库存储的路由信息中确定所述目标标识对应的目标主题信息;所述路由信息中包括多个标识和与所述多个标识对应的多个主题信息,所述多个标识中包括所述目标标识,所述多个主题信息中包括所述目标主题信息;
通过所述预设插件,将所述多个主题消息队列中与所述目标主题信息对应的主题消息队列,确定为所述目标主题消息队列。
3.根据权利要求2所述的多租户路由方法,其特征在于,所述通过所述预设插件,在所述数据库存储的路由信息中确定所述目标标识对应的目标主题信息,包括:
通过所述预设插件中的路由配置服务,基于所述目标标识,在所述数据库存储的路由信息中确定所述目标标识对应的目标主题信息。
4.根据权利要求1至3任一项所述的多租户路由方法,其特征在于,所述方法还包括:
通过所述预设插件,连接配置中心,并获取所述配置中心存储的灰度路由策略;
通过所述预设插件,基于映射组匹配方法对所述灰度路由策略进行封装处理,得到所述路由信息,并将所述路由信息存储至所述数据库。
5.根据权利要求4所述的多租户路由方法,其特征在于,所述方法还包括:
通过所述预设插件的访问接口,更新所述配置中心存储的灰度路由策略。
6.根据权利要求1至3任一项所述的多租户路由方法,其特征在于,所述通过所述预设插件,将所述消息发送至所述目标主题消息队列,包括:
通过所述预设插件将所述消息的当前交换类型修改为所述消息集群的原始交换类型;
通过所述消息集群中的交换机,基于所述原始交换类型,将所述消息发送至所述目标主题消息队列。
7.一种多租户路由装置,其特征在于,应用于电子设备,所述电子设备中包括消息集群,所述消息集群中包括预设插件、数据库和多个主题消息队列;所述装置包括:
接收模块,用于通过所述预设插件接收生产者发送的消息;
处理模块,用于通过所述预设插件对所述消息进行解析处理,得到所述消息中的目标标识;所述目标标识为多个租户中目标租户对应的标识;
处理模块,还用于通过所述预设插件,基于所述目标标识和所述数据库存储的路由信息,在所述多个主题消息队列中确定目标主题消息队列;
发送模块,还用于通过所述预设插件,将所述消息发送至所述目标主题消息队列。
8.根据权利要求7所述的多租户路由装置,其特征在于,所述处理模块具体用于:
通过所述预设插件,在所述数据库存储的路由信息中确定所述目标标识对应的目标主题信息;所述路由信息中包括多个标识和与所述多个标识对应的多个主题信息,所述多个标识中包括所述目标标识,所述多个主题信息中包括所述目标主题信息;
通过所述预设插件,将所述多个主题消息队列中与所述目标主题信息对应的主题消息队列,确定为所述目标主题消息队列。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述多租户路由方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述多租户路由方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210650130.4A CN114726809B (zh) | 2022-06-10 | 2022-06-10 | 多租户路由方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210650130.4A CN114726809B (zh) | 2022-06-10 | 2022-06-10 | 多租户路由方法、装置、设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114726809A true CN114726809A (zh) | 2022-07-08 |
CN114726809B CN114726809B (zh) | 2022-09-20 |
Family
ID=82233040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210650130.4A Active CN114726809B (zh) | 2022-06-10 | 2022-06-10 | 多租户路由方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114726809B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040240458A1 (en) * | 2003-05-27 | 2004-12-02 | Sun Microsystems, Inc. | Method and system for messaging to a cluster |
CN109561226A (zh) * | 2017-09-26 | 2019-04-02 | 华为技术有限公司 | 一种api混合多租户路由方法、系统和api网关 |
CN109885410A (zh) * | 2019-01-09 | 2019-06-14 | 广州视源电子科技股份有限公司 | 消息发送方法、装置、计算机设备和存储介质 |
CN111800354A (zh) * | 2019-04-08 | 2020-10-20 | 中移(苏州)软件技术有限公司 | 消息处理方法及装置、消息处理设备及存储介质 |
CN112988423A (zh) * | 2021-03-19 | 2021-06-18 | 北京京东拓先科技有限公司 | 消息消费、消息分发方法、装置、服务器及存储介质 |
CN113495797A (zh) * | 2021-06-22 | 2021-10-12 | 上海百秋电子商务有限公司 | 一种消息队列及消费者动态创建方法及系统 |
CN114461415A (zh) * | 2021-12-27 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 消息数据处理方法、装置、计算机设备及存储介质 |
-
2022
- 2022-06-10 CN CN202210650130.4A patent/CN114726809B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040240458A1 (en) * | 2003-05-27 | 2004-12-02 | Sun Microsystems, Inc. | Method and system for messaging to a cluster |
CN109561226A (zh) * | 2017-09-26 | 2019-04-02 | 华为技术有限公司 | 一种api混合多租户路由方法、系统和api网关 |
CN109885410A (zh) * | 2019-01-09 | 2019-06-14 | 广州视源电子科技股份有限公司 | 消息发送方法、装置、计算机设备和存储介质 |
CN111800354A (zh) * | 2019-04-08 | 2020-10-20 | 中移(苏州)软件技术有限公司 | 消息处理方法及装置、消息处理设备及存储介质 |
CN112988423A (zh) * | 2021-03-19 | 2021-06-18 | 北京京东拓先科技有限公司 | 消息消费、消息分发方法、装置、服务器及存储介质 |
CN113495797A (zh) * | 2021-06-22 | 2021-10-12 | 上海百秋电子商务有限公司 | 一种消息队列及消费者动态创建方法及系统 |
CN114461415A (zh) * | 2021-12-27 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 消息数据处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114726809B (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230275815A1 (en) | Method and device for terminal device management based on right control | |
CN113259430A (zh) | 一种消息调用方法和装置、电子设备及存储介质 | |
CN111708702A (zh) | 模拟测试方法、客户端、服务端、系统与可读存储介质 | |
EP3247073B1 (en) | Alarm processing method and device | |
CN109284140B (zh) | 配置方法及相关设备 | |
CN108306804A (zh) | 一种Ethercat主站控制器及其通信方法和系统 | |
US10884880B2 (en) | Method for transmitting request message and apparatus | |
CN111984561B (zh) | 一种bmc的ipmi命令处理方法、系统、设备以及介质 | |
CN111708550A (zh) | 应用部署方法、装置、计算机设备及存储介质 | |
CN110875849A (zh) | 光学通信系统 | |
CN110808847B (zh) | 管理das系统的方法和设备、电子设备、存储介质 | |
CN116366652A (zh) | 分布式应用运维方法、系统、装置、服务器及网关设备 | |
CN113779422B (zh) | 关系链标签的实现方法、装置、电子设备及存储介质 | |
CN114726809B (zh) | 多租户路由方法、装置、设备、存储介质及程序产品 | |
CN113746851B (zh) | 一种支持实时解析grpc请求的代理系统和方法 | |
CN112702441B (zh) | 基于容器的访问数据处理方法、装置、系统及存储介质 | |
CN114938396A (zh) | 服务调用请求的路由方法、创建服务的方法及装置 | |
CN115277641A (zh) | 地址共享方法及装置、电子设备、存储介质 | |
CN114385503A (zh) | 接口测试方法、装置、设备及存储介质 | |
CN113326159B (zh) | 用于故障注入的方法、装置、系统及计算机可读存储介质 | |
CN111478941A (zh) | Mock自动化运行方法、装置、计算机设备及存储介质 | |
WO2023032116A1 (ja) | スクリプト判別装置、スクリプト判別方法およびスクリプト判別システム | |
CN115412447B (zh) | 一种基于sdn的业务测试方法、设备及介质 | |
US20240179060A1 (en) | Network management apparatus, network management method and network management system | |
CN117234914A (zh) | Ab测试方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |