CN109862051A - 一种微服务架构下多租户的实现方法及系统 - Google Patents
一种微服务架构下多租户的实现方法及系统 Download PDFInfo
- Publication number
- CN109862051A CN109862051A CN201711234205.6A CN201711234205A CN109862051A CN 109862051 A CN109862051 A CN 109862051A CN 201711234205 A CN201711234205 A CN 201711234205A CN 109862051 A CN109862051 A CN 109862051A
- Authority
- CN
- China
- Prior art keywords
- micro services
- tenant
- label
- service
- module
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 16
- 238000002372 labelling Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 3
- 238000002955 isolation Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种微服务架构下多租户的实现方法及系统,属于网络技术领域,所述方法包括:微服务启动,获取自身的租户标签,生成含有租户标签的注册请求并发送给注册中心;注册中心根据接收到的注册请求中含有的租户标签标注微服务,并返回注册成功响应给微服务;当微服务被租户调用时,生成含有自身的租户标签的服务请求并发送给注册中心;注册中心根据服务请求中含有的租户标签查找对应的可用微服务,并返回可用微服务的信息给该微服务;该微服务根据可用微服务的信息调用可用微服务。本发明中的方法,不仅实现了各微服务的统一管理,而且实现了不同租户之间微服务的隔离。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种微服务架构下多租户的实现方法及系统。
背景技术
随着互联网技术的飞速发展,越来越多的新名词在人们的耳边响起,例如:微服务,其是一个新兴的软件架构,即将一个大型的单个应用程序和服务拆分为数十个支持的微服务。每个微服务的策略是让工作变得更为简便,其可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。与微服务相关的就是注册中心,注册中心是微服务架构中的服务发现机制,每个微服务都要将自己注册到注册中心中,当服务相互进行访问的时候通过注册中心获取可用服务地址,然后进行调用。
又如:系统变现,即企业将自身的系统以服务的形式提供给外部用户使用,并通过增值服务的方式实现内部系统的价值增长,举例如:百度地图服务为滴滴打车等第三方软件提供接口服务,从而收取一定的接口流量使用费。
又如:多租户技术(multi-tenancy technology),或称多重租赁技术,其是一种软件架构技术,是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。
再如,SaaS:是软件,即服务的简称,是随着互联网技术的发展和应用软件的成熟,在21世纪开始兴起的一种完全创新的软件应用模式。它与“on-demand software”(按需软件),the application service provider(ASP,应用服务提供商),hosted software(托管软件)所具有相似的含义。是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件;并且服务提供商在向客户提供互联网应用的同时,还提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。
目前,许多企业都采用上述微服务架构进行系统规划和建设,每个服务由大量的微服务组成,微服务之间相互协调为用户提供业务处理能力。而随着SaaS化的提出,企业更多的要考虑如何将自身的系统能力提供给第三方用户使用,从而实现系统变现,当将系统以服务的形式对外提供的时候就不可避免涉及到多个租户之间的服务如何进行隔离的问题,通过服务隔离可以为每个租户定制个性化的服务和保障,实现风险隔离,从而实现服务于A租户的系统出现问题的时候不会影响B租户。
现有的多租户实现手段通常有为两种,一种是为每个租户部署独立的系统,使用独立的硬件和软件;另外一种是使用一套系统,但是在数据及服务入口上增加租户信息,系统在内部根据租户信息实现应用处理逻辑的分离。然而,前者使用独立的硬件和软件为每个租户部署独立的系统可以实现租户系统的完全隔离,但是维护成本较高,当系统需要升级或者监管的时候都需要分别进行,不利于统一的版本管理和集中监控;后者,使用一套系统对数据和接口进行改造的方式虽然在维护成本上没有增加,但是需要对现有系统进行大量的改造,从存储层到所有微服务的接口层都需要增加租户标签,并且由于没有做到系统的隔离,所以会存在租户间相互影响和数据安全的缺陷。可见,在基于微服务架构的系统规划和建设中,如何有效的在多租户之间进行数据的隔离是一个需要解决的问题。
发明内容
为解决现有技术的不足,本发明提供一种微服务架构下多租户的实现方法及系统。
一方面,本发明提供一种微服务架构下多租户的实现方法,包括:
步骤S1:微服务启动,获取自身的租户标签,生成含有所述租户标签的注册请求,发送所述注册请求给注册中心;
步骤S2:所述注册中心根据所述注册请求中含有的租户标签标注所述微服务,并返回注册成功响应给所述微服务;
步骤S3:当微服务被租户调用时,生成含有所述租户标签的服务请求,发送所述服务请求给所述注册中心;
步骤S4:所述注册中心根据所述服务请求中含有的租户标签查找对应的可用微服务,并返回所述可用微服务的信息给微服务;
步骤S5:微服务根据所述可用微服务的信息调用可用微服务。
可选地,所述微服务部署给一个租户,或者共享给多个租户;
对应地,所述步骤S1中,所述获取自身的租户标签,生成含有所述租户标签的注册请求,具体为:所述微服务在自身的配置文件中获取自身的一个或者多个租户标签,并生成含有所述一个或者多个租户标签的注册请求。
可选地,所述步骤S1中,所述生成含有所述租户标签的注册请求,具体为:所述微服务生成含有自身服务地址及所述租户标签的注册请求;
对应地,所述步骤S2中,所述注册中心根据所述注册请求中含有的租户标签标注所述微服务,具体为:所述注册中心解析所述注册请求得到所述服务地址和租户标签,生成含有所述服务地址和租户标签的标注信息,并保存至微服务列表中。
可选地,所述步骤S4,具体为:所述注册中心根据所述服务请求中含有的租户标签,在所述微服务列表中查找含有所述租户标签的标注信息,将查找到的标注信息对应的微服务作为可用微服务,在查找到的标注信息中读取可用微服务的服务地址,生成服务地址列表,发送所述服务地址列表给微服务;
对应地,所述步骤S5,具体为:所述微服务根据所述微服务地址列表中的服务地址调用对应的可用微服务。
可选地,所述可用地址列表中含有各可用地址的权重信息;
对应地,所述步骤S5,具体为:微服务比对可用地址列表中各服务地址的权重信息,并调用权重大的服务地址对应的可用微服务。
另一方面,本发明提供一种微服务架构下多租户的实现系统,包括:微服务和注册中心;
所述微服务,包括:
启动模块,用于启动微服务;
第一获取模块,用于在所述启动模块启动微服务之后,获取微服务的租户标签;
第一生成模块,用于生成含有所述第一获取模块获取的租户标签的注册请求;
第一发送模块,用于发送所述第一生成模块生成的注册请求给注册中心;
第一接收模块,用于接收所述注册中心返回的注册成功响应;
第二生成模块,用于当微服务被租户调用时,生成含有租户标签的服务请求;
所述第一发送模块,还用于发送所述第二生成模块生成的服务请求给所述注册中心;
所述第一接收模块,还用于接收所述注册中心发送来的可用服务器的信息;
调用模块,用于根据所述第一接收模块接收到的可用服务器的信息调用可用微服务;
所述注册中心,包括:
第二接收模块,用于接收所述微服务发送来的注册请求;
标注模块,用于根据所述第二接收模块接收到的注册请求中含有的租户标签标注所述微服务;
第二发送模块,用于在所述标注模块根据所述第二接收模块接收到的注册请求中含有的租户标签标注所述微服务之后,返回注册成功响应给所述微服务;
所述第二接收模块,还用于接收所述微服务发送来的服务请求;
查找模块,用于当所述第二接收模块接收到所述微服务发送来的服务请求时,根据所述服务请求中含有的租户标签查找对应的可用微服务;
第三发送模块,用于发送所述查找模块查找到的可用微服务的信息给微服务。
可选地,所述微服务部署给一个租户,或者共享给多个租户;
对应地,所述第一获取模块,具体用于:在所述启动模块启动微服务之后,在微服务的配置文件中获取微服务的一个或者多个租户标签;
对应地,所述第一生成模块,具体用于:生成含有所述第一获取模块获取的一个或者多个租户标签的注册请求。
可选地,所述第一生成模块,具体用于:生成含有微服务的服务地址及所述第一获取模块获取的租户标签的注册请求;
对应地,所述标注模块,具体用于:解析所述第二接收模块接收到的注册请求得到所述服务地址和租户标签,生成含有所述服务地址和租户标签的标注信息,并保存至微服务列表中。
可选地,所述查找模块,具体用于:根据所述第二接收模块接收到的服务请求中含有的租户标签,在所述微服务列表中查找含有所述租户标签的标注信息,将查找到的标注信息对应的微服务作为可用微服务,在查找到的标注信息中读取可用微服务的服务地址,生成服务地址列表;
对应地,所述第三发送模块,具体用于:发送所述查找模块生成的服务地址列表给微服务;
对应地,所述调用模块,具体用于:根据所述微服务地址列表中的服务地址调用对应的可用微服务。
可选地,所述可用地址列表中含有各可用地址的权重信息;
对应地,所述调用模块,具体用于:比对可用地址列表中各服务地址的权重信息,并调用权重大的服务地址对应的可用微服务。
本发明的优点在于:
本发明中,通过为微服务增加租户维度,即租户标签,并且在微服务向注册中心注册时,进行租户标签注册,使得租户在通过自身的微服务向注册中心请求调用其他微服务时,注册中心返回与该租户标签对应的可用微服务列表供该微服务调用;一方面,所有租户的微服务都在注册中心集中注册,实现了全局的微服务管理,同时在不同租户调用微服务时,实现了服务的隔离,使得不同租户的系统升级以及故障,不会相互影响。另一方面,一个微服务可以部署给多个租户,可以最大化的让多个租户共享一个高可靠、高可用的服务,而不是对每个租户分别部署,节约了成本,提高了资源的利用率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
附图1为本发明提供的一种微服务架构下多租户的实现方法流程图;
附图2为本发明提供一种微服务架构下多租户共享微服务的示意图;
附图3为本发明提供的一种微服务架构下多租户的实现系统模块组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明提供的微服务架构下多租户的实现方法及系统,在基于微服务思想的系统架构设计,采取为每个微服务在启动时增加租户维度的方式,并且微服务在被租户调用时通过注册中心获取该租户维度的可用微服务列表,进而进行调用,该方法有效的实现了多租户之间的服务隔离,又可以对微服务进行集中管理,避免了维护成本和开发成本的增加。
进一步地,实现本发明的技术方案之前,还包括:对现有业务的业务层次和模块进行分析,将其中相对独立的业务和重要的业务进行拆分,并将拆分的业务划分为一个个的微服务。由于微服务的特点是不同的微服务相互独立、互不干扰,因而将现有业务拆分为微服务,实质上是通过比较细力度的业务分析,将传统的服务器架构转变为松耦合的微服务架构,从而实现业务的解耦。
例如,现有的业务中存在邮件发送模块,则可以将该业务拆分为邮件发送微服务,该微服务部署在不同租户的服务器上并注册到同一个注册中心,来自租户(客户端)的原始请求首先从注册中心获取与该租户相同租户维度的邮件发送微服务的服务地址,然后在根据这个地址去调用该租户的邮件发送微服务。
如上所述,在将现有业务拆分为微服务之后,每个微服务都可以通过增加租户维度的方式注册到注册中心,既可以为一个租户部署多个微服务,也可以多个租户部署同一个微服务,其取决于系统能力对于隔离的具体要求。为了保证微服务的稳定性和可扩展性,优选地,为每个租户部署多个微服务,该方式能够组成微服务集群,从而实现服务的负载均衡和高可用。以下将对本发明的技术方案进行进一步的详述。
实施例一
根据本发明的实施方式,提供一种基于微服务的多租户实现方法,如图1所示,包括:
步骤101:微服务启动,获取自身的租户标签,并生成含有租户标签的注册请求,发送注册请求给注册中心;
根据本发明的实施方式,微服务部署给一个租户,或者共享给多个租户;
对应地,步骤101中,获取自身的租户标签,生成含有租户标签的注册请求,具体为:微服务在自身的配置文件中获取自身的一个或者多个租户标签,并生成含有一个或者多个租户标签的注册请求。
通常地,隔离性要求严格的场合为每个租户部署独立的微服务,及微服务含有一个用户标签;而对于一些跨租户的业务场景,微服务可以部署给多个租户,从而实现微服务共享,即微服务含有多个租户标签。如图2所示,微服务1和微服务2是租户A的专有微服务,微服务3和微服务4是租户B的专有微服务,微服务5是租户A和租户B的共享微服务,其中的连线代表通信关系。需要指出地,为了简化显示,图2中注册中心只有一个,实际中注册中心的数量往往非常多,并且以集群的形式部署。
进一步地,本实施例汇中,生成含有租户标签的注册请求,具体为:微服务生成含有自身服务地址及租户标签的注册请求。
其中,当租户标签的数量大于1个时,优选地,相邻的两个租户标签之间使用逗号分隔。
更进一步地,本实施例中,微服务与注册中心之间采用标准的RESTful API接口进行数据通信。
步骤102:注册中心根据注册请求中含有的租户标签标注微服务,并返回注册成功响应给微服务;
其中,注册中心根据注册请求中含有的租户标签标注微服务,具体为:注册中心解析接收到的注册请求得到服务地址和租户标签,生成含有得到的服务地址和租户标签的标注信息,并保存至微服务列表中。
其中,微服务列表中含有所有已注册的微服务的标注信息,其可方便的对各微服务进行集中管理。
步骤103:当微服务被租户调用时,生成含有自身的租户标签的服务请求,发送服务请求给注册中心;
具体地,当微服务被租户调用时,在自身的配置文件中读取自身的租户标签,并生成含有读取的租户标签的服务请求,发送服务请求给注册中心。
步骤104:注册中心根据接收到的服务请求中含有的租户标签查找对应的可用微服务,并返回可用微服务的信息给微服务;
具体地,注册中心根据服务请求中含有的租户标签,在微服务列表中查找含有该租户标签的标注信息,将查找到的标注信息对应的微服务作为可用微服务,并在查找到的标注信息中读取可用微服务的服务地址,生成服务地址列表,发送生成的服务地址列表给微服务。
步骤105:微服务根据接收到的可用微服务的信息调用可用微服务。
具体地,微服务根据接收到的微服务地址列表中的服务地址调用对应的可用微服务。
进一步地,在本实施例中,可用地址列表中含有各可用地址的权重信息;
对应地,步骤105,具体为:微服务比对接收到的可用地址列表中各服务地址的权重信息,得到权重最大的服务地址,并调用权重最大的服务地址对应的可用微服务。
需要指出地,当权重最大的服务地址有多个时,从中任意选择一个,并调用选择的服务地址对应的可用微服务。
更进一步地,为更清晰的体现本发明中不同租户之间的微服务调用隔离,本实施例中提供一个微服务部署实例,具体如下:
一个应用系统由WEB微服务(前端页面微服务)、后台微服务(后台数据处理微服务)、邮件微服务(发送邮件微服务)组成;该系统将为两个租户公司C和公司D所使用,由于业务后期可能会导致两个租户的UI不同,所以WEB微服务需要隔离,处于数据安全型考虑,后台微服务需要隔离,而发送邮件微服务,对于不用的租户其功能一致,只是用于邮件发送,无业务特性,也不需保存数据,因而可以共享;
因此,部署结果为:公司C部署WEB微服务C和后台微服务C;公司D部署WEB微服务D和后台微服务D;公司C和公司D共享邮件微服务。
其中,当公司C的用户访问WEB服务器时,由于仅有WEB微服务C含有公司C的租户标识,因而只会调用WEB微服务C,而不会调用WEB微服务D,从而实现了有效的隔离;当后台微服务C、后台微服务D需要调用邮件微服务时,因为邮件微服务同时具有两个公司的租户标签,所以会共享调用同一个邮件微服务。
本发明中,通过为微服务增加租户维度,即租户标签,并且在微服务向注册中心注册时,进行租户标签注册,使得租户在通过自身的微服务向注册中心请求调用其他微服务时,注册中心返回与该租户标签对应的可用微服务列表供该微服务调用;不仅实现了服务的隔离,而且通过微服务的共享,提高了资源的利用率。
实施例二
根据本发明的实施方式,提供一种基于微服务的多租户实现系统,如图3所示,包括:微服务200和注册中心300;
其中,微服务200,包括:
启动模块201,用于启动微服务200;
第一获取模块202,用于在启动模块201启动微服务200之后,获取微服务200的租户标签;
第一生成模块203,用于生成含有第一获取模块202获取的租户标签的注册请求;
第一发送模块204,用于发送第一生成模块203生成的注册请求给注册中心300;
第一接收模块205,用于第一发送模块204发送第一生成模块203生成的注册请求给注册中心300之后,接收注册中心300返回的注册成功响应;
第二生成模块206,用于当微服务200被租户调用时,生成含有租户标签的服务请求;
第一发送模块204,还用于发送第二生成模块206生成的服务请求给注册中心300;
第一接收模块205,还用于接收注册中心300发送来的可用服务器的信息;
调用模块207,用于根据第一接收模块205接收到的可用服务器的信息调用可用微服务;
注册中心300,包括:
第二接收模块301,用于接收微服务200发送来的注册请求;
标注模块302,用于根据第二接收模块301接收到的注册请求中含有的租户标签标注微服务200;
第二发送模块303,用于在标注模块302根据第二接收模块301接收到的注册请求中含有的租户标签标注微服务200之后,返回注册成功响应给微服务200;
第二接收模块301,还用于接收微服务200发送来的服务请求;
查找模块304,用于当第二接收模块301接收到微服务200发送来的服务请求时,根据服务请求中含有的租户标签查找对应的可用微服务;
第三发送模块305,用于发送查找模块304查找到的可用微服务的信息给微服务200。
根据本发明的实施方式,微服务200部署给一个租户,或者共享给多个租户;
对应地,第一获取模块202,具体用于:在启动模块201启动微服务200之后,在微服务200的配置文件中获取微服务200的一个或者多个租户标签;
第一生成模块203,具体用于:生成含有第一获取模块202获取的一个或者多个租户标签的注册请求。
根据本发明的实施方式,第一生成模块203,具体用于:生成含有微服务200的服务地址及第一获取模块202获取的租户标签的注册请求;
对应地,标注模块302,具体用于:解析第二接收模块301接收到的注册请求得到所述服务地址和租户标签,生成含有所述服务地址和租户标签的标注信息,并保存至微服务列表中。
根据本发明的实施方式,查找模块304,具体用于:根据第二接收模块301接收到的服务请求中含有的租户标签,在微服务列表中查找含有租户标签的标注信息,将查找到的标注信息对应的微服务作为可用微服务,在查找到的标注信息中读取可用微服务的服务地址,生成服务地址列表;
对应地,第三发送模块305,具体用于:发送查找模块304生成的服务地址列表给微服务200;
调用模块207,具体用于:根据微服务地址列表中的服务地址调用对应的可用微服务。
进一步地,在本实施例中,可用地址列表中含有各可用地址的权重信息;
对应地,调用模块,具体用于:比对可用地址列表中各服务地址的权重信息,并调用权重大的服务地址对应的可用微服务。
本发明中,通过为微服务增加租户维度,即租户标签,并且在微服务向注册中心注册时,进行租户标签注册,使得租户在通过自身的微服务向注册中心请求调用其他微服务时,注册中心返回与该租户标签对应的可用微服务列表供该微服务调用;一方面,所有租户的微服务都在注册中心集中注册,实现了全局的微服务管理,同时在不同租户调用微服务时,实现了服务的隔离,使得不同租户的系统升级或者出现故障时,不会相互影响。另一方面,一个微服务可以部署给多个租户,可以最大化的让多个租户共享一个高可靠、高可用的服务,而不是对每个租户分别部署,节约了成本,提高了资源的利用率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种微服务架构下多租户的实现方法,其特征在于,包括:
步骤S1:微服务启动,获取自身的租户标签,生成含有所述租户标签的注册请求,发送所述注册请求给注册中心;
步骤S2:所述注册中心根据所述注册请求中含有的租户标签标注所述微服务,并返回注册成功响应给所述微服务;
步骤S3:当微服务被租户调用时,生成含有所述租户标签的服务请求,发送所述服务请求给所述注册中心;
步骤S4:所述注册中心根据所述服务请求中含有的租户标签查找对应的可用微服务,并返回所述可用微服务的信息给微服务;
步骤S5:微服务根据所述可用微服务的信息调用可用微服务。
2.根据权利要求1所述的方法,其特征在于,所述微服务部署给一个租户,或者共享给多个租户;
所述步骤S1中,所述获取自身的租户标签,生成含有所述租户标签的注册请求,具体为:所述微服务在自身的配置文件中获取自身的一个或者多个租户标签,并生成含有所述一个或者多个租户标签的注册请求。
3.根据权利要求1所述的方法,其特征在于,
所述步骤S1中,所述生成含有所述租户标签的注册请求,具体为:所述微服务生成含有自身服务地址及所述租户标签的注册请求;
所述步骤S2中,所述注册中心根据所述注册请求中含有的租户标签标注所述微服务,具体为:所述注册中心解析所述注册请求得到所述服务地址和租户标签,生成含有所述服务地址和租户标签的标注信息,并保存至微服务列表中。
4.根据权利要求3所述的方法,其特征在于,所述步骤S4,具体为:所述注册中心根据所述服务请求中含有的租户标签,在所述微服务列表中查找含有所述租户标签的标注信息,将查找到的标注信息对应的微服务作为可用微服务,在查找到的标注信息中读取可用微服务的服务地址,生成服务地址列表,发送所述服务地址列表给微服务;
所述步骤S5,具体为:所述微服务根据所述微服务地址列表中的服务地址调用对应的可用微服务。
5.根据权利要求4所述的方法,其特征在于,所述可用地址列表中含有各可用地址的权重信息;
所述步骤S5,具体为:微服务比对可用地址列表中各服务地址的权重信息,并调用权重大的服务地址对应的可用微服务。
6.一种微服务架构下多租户的实现系统,其特征在于,包括:微服务和注册中心;
所述微服务,包括:
启动模块,用于启动微服务;
第一获取模块,用于在所述启动模块启动微服务之后,获取微服务的租户标签;
第一生成模块,用于生成含有所述第一获取模块获取的租户标签的注册请求;
第一发送模块,用于发送所述第一生成模块生成的注册请求给注册中心;
第一接收模块,用于接收所述注册中心返回的注册成功响应;
第二生成模块,用于当微服务被租户调用时,生成含有租户标签的服务请求;
所述第一发送模块,还用于发送所述第二生成模块生成的服务请求给所述注册中心;
所述第一接收模块,还用于接收所述注册中心发送来的可用服务器的信息;
调用模块,用于根据所述第一接收模块接收到的可用服务器的信息调用可用微服务;
所述注册中心,包括:
第二接收模块,用于接收所述微服务发送来的注册请求;
标注模块,用于根据所述第二接收模块接收到的注册请求中含有的租户标签标注所述微服务;
第二发送模块,用于在所述标注模块根据所述第二接收模块接收到的注册请求中含有的租户标签标注所述微服务之后,返回注册成功响应给所述微服务;
所述第二接收模块,还用于接收所述微服务发送来的服务请求;
查找模块,用于当所述第二接收模块接收到所述微服务发送来的服务请求时,根据所述服务请求中含有的租户标签查找对应的可用微服务;
第三发送模块,用于发送所述查找模块查找到的可用微服务的信息给微服务。
7.根据权利要求6所述的系统,其特征在于,所述微服务部署给一个租户,或者共享给多个租户;
所述第一获取模块,具体用于:在所述启动模块启动微服务之后,在微服务的配置文件中获取微服务的一个或者多个租户标签;
所述第一生成模块,具体用于:生成含有所述第一获取模块获取的一个或者多个租户标签的注册请求。
8.根据权利要求6所述的系统,其特征在于,
所述第一生成模块,具体用于:生成含有微服务的服务地址及所述第一获取模块获取的租户标签的注册请求;
所述标注模块,具体用于:解析所述第二接收模块接收到的注册请求得到所述服务地址和租户标签,生成含有所述服务地址和租户标签的标注信息,并保存至微服务列表中。
9.根据权利要求8所述的系统,其特征在于,
所述查找模块,具体用于:根据所述第二接收模块接收到的服务请求中含有的租户标签,在所述微服务列表中查找含有所述租户标签的标注信息,将查找到的标注信息对应的微服务作为可用微服务,在查找到的标注信息中读取可用微服务的服务地址,生成服务地址列表;
所述第三发送模块,具体用于:发送所述查找模块生成的服务地址列表给微服务;
所述调用模块,具体用于:根据所述微服务地址列表中的服务地址调用对应的可用微服务。
10.根据权利要求9所述的系统,其特征在于,所述可用地址列表中含有各可用地址的权重信息;
所述调用模块,具体用于:比对可用地址列表中各服务地址的权重信息,并调用权重大的服务地址对应的可用微服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711234205.6A CN109862051A (zh) | 2017-11-30 | 2017-11-30 | 一种微服务架构下多租户的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711234205.6A CN109862051A (zh) | 2017-11-30 | 2017-11-30 | 一种微服务架构下多租户的实现方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109862051A true CN109862051A (zh) | 2019-06-07 |
Family
ID=66887815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711234205.6A Pending CN109862051A (zh) | 2017-11-30 | 2017-11-30 | 一种微服务架构下多租户的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109862051A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554927A (zh) * | 2019-09-12 | 2019-12-10 | 北京笔新互联网科技有限公司 | 基于区块链的微服务调用方法 |
CN110943975A (zh) * | 2019-11-07 | 2020-03-31 | 南方电网财务有限公司 | 服务注册的方法、装置、计算机设备和存储介质 |
CN111159488A (zh) * | 2019-11-25 | 2020-05-15 | 国网湖南省电力有限公司 | 一种基于微服务架构的电网搜索系统及方法 |
CN111405058A (zh) * | 2020-03-24 | 2020-07-10 | 山东浪潮通软信息科技有限公司 | 一种多移动终端多租户应用通知方法、装置、设备和介质 |
CN111814177A (zh) * | 2020-06-28 | 2020-10-23 | 中国建设银行股份有限公司 | 基于微服务的多租户数据处理方法、装置、设备及系统 |
CN111865980A (zh) * | 2020-07-20 | 2020-10-30 | 北京百度网讯科技有限公司 | 信息存储中心的信息处理方法和装置 |
CN112181438A (zh) * | 2020-09-18 | 2021-01-05 | 杭州卓健信息科技有限公司 | 一种2b的saas平台中的微服务独立部署系统和方法 |
WO2021022987A1 (zh) * | 2019-08-05 | 2021-02-11 | 腾讯科技(深圳)有限公司 | 车路协同装置和方法、电子设备和存储介质 |
CN112542002A (zh) * | 2019-09-23 | 2021-03-23 | 北京轻享科技有限公司 | 一种租车系统控制方法及装置 |
CN112689013A (zh) * | 2020-12-24 | 2021-04-20 | 中国农业银行股份有限公司 | 一种服务发现的系统、方法及装置 |
CN112929195A (zh) * | 2019-12-05 | 2021-06-08 | 北京沃东天骏信息技术有限公司 | 服务系统、由服务系统执行的方法、处理装置和存储介质 |
CN112948798A (zh) * | 2021-03-19 | 2021-06-11 | 深圳市商汤科技有限公司 | 数据处理方法及相关产品 |
WO2021218328A1 (zh) * | 2020-04-28 | 2021-11-04 | 深圳壹账通智能科技有限公司 | 多租户访问服务实现方法、装置、设备及存储介质 |
CN114675896A (zh) * | 2020-12-24 | 2022-06-28 | 广东飞企互联科技股份有限公司 | 一种面向微服务开发的参数配置方法与系统 |
CN115629866A (zh) * | 2022-12-21 | 2023-01-20 | 北京永辉科技有限公司 | 微服务注册配置与调用方法、微服务组件、系统及设备 |
CN115858491A (zh) * | 2022-11-29 | 2023-03-28 | 四川虹魔方网络科技有限公司 | 基于用户标签管理中心实现用户半自动化运营管理的方法 |
CN118784712A (zh) * | 2024-09-09 | 2024-10-15 | 网思科技股份有限公司 | 一种多租户及微服务架构的企业数字化服务平台 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197638B1 (en) * | 2000-08-21 | 2007-03-27 | Symantec Corporation | Unified permissions control for remotely and locally stored files whose informational content may be protected by smart-locking and/or bubble-protection |
US20100306672A1 (en) * | 2009-06-01 | 2010-12-02 | Sony Computer Entertainment America Inc. | Method and apparatus for matching users in multi-user computer simulations |
US20120276996A1 (en) * | 2011-04-30 | 2012-11-01 | Samsung Electronics Co., Ltd. | Multi-user discovery |
CN103036856A (zh) * | 2011-10-09 | 2013-04-10 | 镇江金软计算机科技有限责任公司 | 基于saas应用的多租户系统实现 |
CN105376225A (zh) * | 2015-11-02 | 2016-03-02 | 亚信科技(南京)有限公司 | 一种软件服务化的方法及装置 |
CN105786474A (zh) * | 2014-12-25 | 2016-07-20 | 北京仿真中心 | 一种支持多租户的协同业务流程定制系统及方法 |
CN105871607A (zh) * | 2016-03-29 | 2016-08-17 | 联想(北京)有限公司 | 信息处理方法及服务平台 |
CN106453288A (zh) * | 2016-09-29 | 2017-02-22 | 上海和付信息技术有限公司 | 一种支持异步模式的分布式微服务框架系统及其实现方法 |
CN106487912A (zh) * | 2016-10-26 | 2017-03-08 | 北京荣之联科技股份有限公司 | 多服务应用的管理与发布方法及装置 |
CN106559488A (zh) * | 2016-11-24 | 2017-04-05 | 天津市普迅电力信息技术有限公司 | 一种建立租户驱动的电网地理信息空间服务的方法 |
CN107169772A (zh) * | 2017-04-28 | 2017-09-15 | 英泰伟业信息技术股份有限公司 | 基于云技术的彩票客户关系管理方法及系统 |
CN107193546A (zh) * | 2017-04-11 | 2017-09-22 | 国网天津市电力公司信息通信公司 | 一种微服务化业务应用系统 |
CN107203376A (zh) * | 2017-04-11 | 2017-09-26 | 国网天津市电力公司信息通信公司 | 一种企业级信息化系统 |
-
2017
- 2017-11-30 CN CN201711234205.6A patent/CN109862051A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197638B1 (en) * | 2000-08-21 | 2007-03-27 | Symantec Corporation | Unified permissions control for remotely and locally stored files whose informational content may be protected by smart-locking and/or bubble-protection |
US20100306672A1 (en) * | 2009-06-01 | 2010-12-02 | Sony Computer Entertainment America Inc. | Method and apparatus for matching users in multi-user computer simulations |
US20120276996A1 (en) * | 2011-04-30 | 2012-11-01 | Samsung Electronics Co., Ltd. | Multi-user discovery |
CN103036856A (zh) * | 2011-10-09 | 2013-04-10 | 镇江金软计算机科技有限责任公司 | 基于saas应用的多租户系统实现 |
CN105786474A (zh) * | 2014-12-25 | 2016-07-20 | 北京仿真中心 | 一种支持多租户的协同业务流程定制系统及方法 |
CN105376225A (zh) * | 2015-11-02 | 2016-03-02 | 亚信科技(南京)有限公司 | 一种软件服务化的方法及装置 |
CN105871607A (zh) * | 2016-03-29 | 2016-08-17 | 联想(北京)有限公司 | 信息处理方法及服务平台 |
CN106453288A (zh) * | 2016-09-29 | 2017-02-22 | 上海和付信息技术有限公司 | 一种支持异步模式的分布式微服务框架系统及其实现方法 |
CN106487912A (zh) * | 2016-10-26 | 2017-03-08 | 北京荣之联科技股份有限公司 | 多服务应用的管理与发布方法及装置 |
CN106559488A (zh) * | 2016-11-24 | 2017-04-05 | 天津市普迅电力信息技术有限公司 | 一种建立租户驱动的电网地理信息空间服务的方法 |
CN107193546A (zh) * | 2017-04-11 | 2017-09-22 | 国网天津市电力公司信息通信公司 | 一种微服务化业务应用系统 |
CN107203376A (zh) * | 2017-04-11 | 2017-09-26 | 国网天津市电力公司信息通信公司 | 一种企业级信息化系统 |
CN107169772A (zh) * | 2017-04-28 | 2017-09-15 | 英泰伟业信息技术股份有限公司 | 基于云技术的彩票客户关系管理方法及系统 |
Non-Patent Citations (2)
Title |
---|
姜冲: "从多租户隔离到高可用谈DaoShip微服务架构演进", 《CSDN HTTPS://BLOG.CSDN.NET/WEIXIN_33748818/ARTICLE/DETAILS/90582933》 * |
李苏璇: "基于微服务架构的SaaS应用构建方法研究", 《中国优秀硕士学位论文全文数据库 (信息科技辑) 》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102567204B1 (ko) * | 2019-08-05 | 2023-08-14 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 차량-도로 협력 장치 및 방법, 전자 디바이스 및 저장 매체 |
WO2021022987A1 (zh) * | 2019-08-05 | 2021-02-11 | 腾讯科技(深圳)有限公司 | 车路协同装置和方法、电子设备和存储介质 |
US11974201B2 (en) | 2019-08-05 | 2024-04-30 | Tencent Technology (Shenzhen) Company Limited | Vehicle-road collaboration apparatus and method, electronic device, and storage medium |
KR20210130213A (ko) * | 2019-08-05 | 2021-10-29 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 차량-도로 협력 장치 및 방법, 전자 디바이스 및 저장 매체 |
CN110554927A (zh) * | 2019-09-12 | 2019-12-10 | 北京笔新互联网科技有限公司 | 基于区块链的微服务调用方法 |
CN112542002A (zh) * | 2019-09-23 | 2021-03-23 | 北京轻享科技有限公司 | 一种租车系统控制方法及装置 |
CN110943975A (zh) * | 2019-11-07 | 2020-03-31 | 南方电网财务有限公司 | 服务注册的方法、装置、计算机设备和存储介质 |
CN111159488A (zh) * | 2019-11-25 | 2020-05-15 | 国网湖南省电力有限公司 | 一种基于微服务架构的电网搜索系统及方法 |
CN112929195A (zh) * | 2019-12-05 | 2021-06-08 | 北京沃东天骏信息技术有限公司 | 服务系统、由服务系统执行的方法、处理装置和存储介质 |
CN111405058B (zh) * | 2020-03-24 | 2023-05-02 | 浪潮通用软件有限公司 | 一种多移动终端多租户应用通知方法、装置、设备和介质 |
CN111405058A (zh) * | 2020-03-24 | 2020-07-10 | 山东浪潮通软信息科技有限公司 | 一种多移动终端多租户应用通知方法、装置、设备和介质 |
WO2021218328A1 (zh) * | 2020-04-28 | 2021-11-04 | 深圳壹账通智能科技有限公司 | 多租户访问服务实现方法、装置、设备及存储介质 |
CN111814177A (zh) * | 2020-06-28 | 2020-10-23 | 中国建设银行股份有限公司 | 基于微服务的多租户数据处理方法、装置、设备及系统 |
CN111814177B (zh) * | 2020-06-28 | 2023-06-09 | 建信金融科技有限责任公司 | 基于微服务的多租户数据处理方法、装置、设备及系统 |
CN111865980A (zh) * | 2020-07-20 | 2020-10-30 | 北京百度网讯科技有限公司 | 信息存储中心的信息处理方法和装置 |
CN112181438A (zh) * | 2020-09-18 | 2021-01-05 | 杭州卓健信息科技有限公司 | 一种2b的saas平台中的微服务独立部署系统和方法 |
CN114675896A (zh) * | 2020-12-24 | 2022-06-28 | 广东飞企互联科技股份有限公司 | 一种面向微服务开发的参数配置方法与系统 |
CN112689013A (zh) * | 2020-12-24 | 2021-04-20 | 中国农业银行股份有限公司 | 一种服务发现的系统、方法及装置 |
CN112948798A (zh) * | 2021-03-19 | 2021-06-11 | 深圳市商汤科技有限公司 | 数据处理方法及相关产品 |
CN115858491A (zh) * | 2022-11-29 | 2023-03-28 | 四川虹魔方网络科技有限公司 | 基于用户标签管理中心实现用户半自动化运营管理的方法 |
CN115858491B (zh) * | 2022-11-29 | 2023-07-28 | 四川虹魔方网络科技有限公司 | 基于用户标签管理中心实现用户半自动化运营管理的方法 |
CN115629866A (zh) * | 2022-12-21 | 2023-01-20 | 北京永辉科技有限公司 | 微服务注册配置与调用方法、微服务组件、系统及设备 |
CN118784712A (zh) * | 2024-09-09 | 2024-10-15 | 网思科技股份有限公司 | 一种多租户及微服务架构的企业数字化服务平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109862051A (zh) | 一种微服务架构下多租户的实现方法及系统 | |
EP3748908B1 (en) | Method, system, network device, storage medium for creating a network slice | |
US8250215B2 (en) | Method and system for intelligently leveraging cloud computing resources | |
US11108653B2 (en) | Network service management method, related apparatus, and system | |
CN103001992B (zh) | 虚拟桌面实现系统及其使用方法 | |
US8364819B2 (en) | Systems and methods for cross-vendor mapping service in cloud networks | |
US8606897B2 (en) | Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network | |
CN110262902B (zh) | 信息处理方法及系统、介质和计算设备 | |
CN112214338A (zh) | 一种基于微服务灵活部署的物联网云平台 | |
EP3451594A1 (en) | Network function virtualization management orchestration device, method, and program | |
US20110295727A1 (en) | Systems and methods for aggregate monitoring of utilization data for vendor products in cloud networks | |
US20190056975A1 (en) | Virtualized network function manager determining method and network functions virtualization orchestrator | |
US20180034709A1 (en) | Method and Device for Asset Information Management | |
KR20100048571A (ko) | 다중 사용자-다중 서비스 제공 방법, 장치 및 시스템 | |
CN106709784A (zh) | 一种高并发可扩展分布式架构的跨境电商平台 | |
CN105991694B (zh) | 一种实现分布式服务调用的方法与设备 | |
WO2020108443A1 (zh) | 一种虚拟化管理方法及装置 | |
CN116633775B (zh) | 一种多容器网络接口的容器通信方法及系统 | |
CN105117938A (zh) | 一种基于模型视图控制器的电商构架请求数据分析方法 | |
CN112149079A (zh) | 基于微服务架构的规划评审管理平台及用户访问授权方法 | |
CN109558239A (zh) | 一种任务调度方法、装置、系统、计算机设备和存储介质 | |
CN105071965B (zh) | 一种网络设备的管理系统 | |
CN106713353A (zh) | 一种地理信息服务的智能化无缝聚合方法及系统 | |
CN113495776A (zh) | Vnf实例化方法及装置 | |
EP4083795A1 (en) | Method for deploying virtual machine, and related apparatus |
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 |