电子通信装置的制造及其应用技术一种基于动态规则实现多租户服务rpc隔离的调用方法技术领域1.本发明属于计算机技术领域,具体涉及一种基于动态规则实现多租户服务rpc隔离的调用方法。背景技术:2.随着公司的发展和行业saas化进程的推进,需要支持租户间的隔离调用,以此实现租户数据的安全性、正确性。3.由于现有公司业务的多样性以及公司的saas服务采用多机房部署,服务间的rpc调用采用共用统一的服务注册中心(rpc调用采用dubbo中间件实现),无法做到不同租户间流量隔离调用。而现在业界通用的做法都是独立的服务注册中心实现机房隔离调用,无法解决统一注册中心服务间rpc隔离调用问题。技术实现要素:4.本发明要解决的技术问题是:提供一种基于动态规则实现多租户服务rpc隔离的调用方法,以至少解决上述技术问题。5.为实现上述目的,本发明采用的技术方案如下:一种基于动态规则实现多租户服务rpc隔离的调用方法,包括以下步骤:步骤s1、配置租户规则,所述租户规则包括租户的名称、该租户需要调用的机房、以及该租户所需的服务;步骤s2、在每个机房的服务部署脚本注入该机房标识,发起服务部署;在注册中心完成各服务的自动注册,并且生成每个服务的服务列表;步骤s3、自动加载租户规则,并存储至本地;步骤s4、租户流量请求服务调用,根据该租户的租户规则和要调用的下游服务的服务列表,发起rpc调用下游服务。6.进一步地,一个服务部署于多个机房内。7.进一步地,部署同一服务的机房数量与调用该服务的租户数量一致。8.进一步地,租户规则支持在线修改和实时更新。9.进一步地,所述步骤s4包括:步骤s41、基于租户流量请求,从注册中心获取要调用的下游服务的服务列表;步骤s42、循环遍历该服务列表,找出与租户规则相匹配的机房,获取该机房中与调用的下游服务相同的服务;步骤s43、发起rpc调用,流量请求到该机房对应的服务上。10.进一步地,所述步骤s42包括:步骤s421、遍历每个要调用的下游服务的服务列表中的服务名称、以及部署该服务的机房信息;步骤s422、如果当前服务列表中的机房信息和租户规则配置的机房匹配,则标识当前机房部署的服务为要调用的服务;步骤s423、重复步骤s421和步骤s422,直至遍历完成最后一个要调用的下游服务的服务列表,标识与租户规则配置相匹配的所有要调用的服务。11.进一步地,在所述步骤s43中,利用dubbo负载均衡策略发起rpc调用,所述rpc调用包括:方法一、从步骤s423标识的所有要调用的服务中,随机选择一个服务发起调用;方法二、从步骤s423标识的所有要调用的服务中,依次调用每个服务,最后一个服务调用结束后又从第一个服务开始轮询调用;方法三、记录从步骤s423标识的所有要调用的服务的调用时长,优先选择调用时长少的一个或多个服务进行调用;方法四、相同调用参数的rpc请求会根据hash算法调用到同一个机房的下游服务上。12.进一步地,利用dubbo提供的参数设置功能,由服务部署脚本注入的机房标识生成服务部署的机房信息。13.进一步地,利用dubbo的服务注册发现机制获取要调用的下游服务的服务列表。14.进一步地,在所述步骤s1中,租户规则配置于数据库中。15.与现有技术相比,本发明具有以下有益效果:本发明提供的一种基于动态规则实现多租户服务rpc隔离的调用方法,适用于业界saas化服务共享/独享主机资源、存储资源的业务场景,需要根据租户规则实现rpc调用隔离的场景,最终实现租户流量隔离和数据隔离,具有通用性。附图说明16.图1为本发明的方法流程图。17.图2为具体实施例的调用逻辑图。具体实施方式18.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图1,对本发明进一步详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。19.本发明提供的一种基于动态规则实现多租户服务rpc隔离的调用方法,包括以下步骤:步骤s1、配置租户规则,所述租户规则包括租户的名称、该租户需要调用的机房、以及该租户所需的服务;步骤s2、在每个机房的服务部署脚本注入该机房标识,发起服务部署;在注册中心完成各服务的自动注册,并且生成每个服务的服务列表;步骤s3、自动加载租户规则,并存储至本地;步骤s4、租户流量请求服务调用,根据该租户的租户规则和要调用的下游服务的服务列表,发起rpc调用下游服务。20.在所述步骤s1中,租户规则主要存储在数据库,每添加一个租户,均会配置该租户的配置规则。同时租户规则支持在线修改和实时更新,更新后的租户规则在dubbo发起调用下游服务路由前会从数据库查询出对应的租户规则,取出租户要调用的机房,最终路由该机房的服务。21.在所述步骤s2中,通过在每个机房的服务部署脚本都注入该机房的机房标识,以此保证每个机房部署的服务信息有部署机房的机房标识,便于后续服务调用。然后通过注册中心完成服务自动注册,比如选择nacos注册中心,dubbo组件在服务部署时会通过tcp网络连接从nacos提取要调用的下游服务;同时dubbo组件也会在服务部署时通过tcp网络连接将当前要部署的服务,将服务注册到nacos注册中心。一个服务部署于多个机房内,作为优选,部署同一服务的多个机房的数量与该服务对应租户的数量一致。22.所述步骤s4包括:步骤s41、基于租户流量请求,从注册中心获取要调用的下游服务的服务列表;步骤s42、循环遍历该服务列表,找出与租户规则相匹配的机房,获取该机房中与调用的下游服务相同的服务;步骤s43、发起rpc调用,流量请求到该机房对应的服务上。23.其中,下游服务的服务列表在步骤s2生成,通过dubbo组件服务注册机制发布到注册中心nacos的服务,得到每个服务的服务列表。在服务调用时tcp连接nacos注册中心获取下游服务的服务列表。24.进一步地,所述步骤s42包括:步骤s421、遍历每个要调用的下游服务的服务列表中的服务名称、以及部署该服务的机房信息,其中机房信息是利用dubbo提供的参数设置功能,由服务部署脚本注入的机房标识生成的;步骤s422、如果当前服务列表中的机房信息和租户规则配置的机房匹配,则标识当前机房部署的服务为要调用的服务;步骤s423、重复步骤s421和步骤s422,直至遍历完成最后一个要调用的下游服务的服务列表,标识与租户规则配置相匹配的所有要调用的服务。25.最后利用dubbo负载均衡策略发起rpc调用,所述rpc调用包括:方法一、从步骤s423标识的所有要调用的服务中,随机选择一个服务发起调用;方法二、从步骤s423标识的所有要调用的服务中,依次调用每个服务,最后一个服务调用结束后又从第一个服务开始轮询调用,例如所有要调用的服务有三个,第一次选择一个服务调用,当第二次调用时选择第二个服务调用,第三次发起调用时选择第三个服务,第四次时又从第一个开始轮询调用;方法三、记录从步骤s423标识的所有要调用的服务的调用时长,优先选择调用时长少的一个或多个服务进行调用,例如三个服务的调用时间分别为3ms、10ms、50ms,这时在调用时会优先选择第一个、第二个服务调用,第三个服务可能影响整个服务的性能;方法四、相同调用参数的rpc请求会根据hash算法调用到同一个机房的下游服务上。26.优先配置用于路由的租户规则:t:代表租户, s:代表rpc服务,r:代表机房t1ꢀ‑》 s1ꢀ‑》 r1 (说明:租户1请求在调用rpc服务s1时,需要调用机房r1 的s1服务)t2ꢀ‑》 s1ꢀ‑》 r2 (说明:租户2请求在调用rpc服务s1时,需要调用机房r2 的s1服务)t1ꢀ‑》 s2ꢀ‑》 r3 (说明:租户1请求在调用rpc服务s2时,需要调用机房r3 的s2服务)t2ꢀ‑》 s2ꢀ‑》 r4 (说明:租户2请求在调用rpc服务s2时,需要调用机房r4 的s2服务)。27.需要说明的是本技术不限制两个租户。28.同理租户t1、租户t2的下游rpc服务规则、以及其他租户与rpc服务和机房的关系按照上面配置。29.如图2所示:当租户t1请求进入机房s0,基于租户规则rpc调用机房r1的s1服务;之后租户t1发起rpc调用s2服务,基于租户规则rpc调用机房r3的s2服务,下游各服务顺序调用同样也基于配置的租户规则实现;当租户t1请求进入机房s0,租户t1发起rpc调用s2服务,基于租户规则rpc调用机房r3的s2服务,下游各服务的非顺序调用同样也基于配置的租户规则实现。30.当租户t2请求进入机房s0,基于租户规则rpc调用机房r2的s1服务;之后租户t2发起rpc调用s2服务,基于租户规则rpc调用机房r4的s2服务,下游各服务顺序调用同样也基于配置的租户规则实现;当租户t2请求进入机房s0,租户t2发起rpc调用s2服务,基于租户规则rpc调用机房r4的s2服务,下游各服务的非顺序调用同样也基于配置的租户规则实现。31.在本实施例中,部署同一服务的多个机房的数量与该服务对应租户的数量一致,当不同租户同时发起相同服务调用时,可根据自身设定的租户规则,选择对应的机房进行服务调用,最终实现租户流量隔离和数据隔离。32.最后应说明的是:以上各实施例仅仅为本发明的较优实施例用以说明本发明的技术方案,而非对其限制,当然更不是限制本发明的专利范围;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围;也就是说,但凡在本发明的主体设计思想和精神上作出的毫无实质意义的改动或润色,其所解决的技术问题仍然与本发明一致的,均应当包含在本发明的保护范围之内;另外,将本发明的技术方案直接或间接的运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
一种基于动态规则实现多租户服务RPC隔离的调用方法与流程 专利技术说明
作者:admin
2023-07-26 11:31:50
799
关键词:
电子通信装置的制造及其应用技术
专利技术