CN112866379A - 微服务的访问方法和装置 - Google Patents

微服务的访问方法和装置 Download PDF

Info

Publication number
CN112866379A
CN112866379A CN202110052332.4A CN202110052332A CN112866379A CN 112866379 A CN112866379 A CN 112866379A CN 202110052332 A CN202110052332 A CN 202110052332A CN 112866379 A CN112866379 A CN 112866379A
Authority
CN
China
Prior art keywords
service
micro
address
gateway
sub
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
Application number
CN202110052332.4A
Other languages
English (en)
Other versions
CN112866379B (zh
Inventor
刘汪洋
李宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202110052332.4A priority Critical patent/CN112866379B/zh
Publication of CN112866379A publication Critical patent/CN112866379A/zh
Application granted granted Critical
Publication of CN112866379B publication Critical patent/CN112866379B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了微服务的访问方法和装置,该方法包括:存储至少一个微服务;针对每一个微服务,建立该微服务的微服务地址与网关地址之间的映射关系;其中,网关地址为当前启动的网关的地址;获取用户请求所对应的访问网关地址;其中;用户请求用于访问至少一个微服务中的目标微服务;根据映射关系,确定与访问网关地址相对应的目标微服务的目标微服务地址,并路由至该目标微服务地址。本方案能够通过网关地址代替微服务地址实现微服务的访问,从而简化各个微服务之间的网络配置过程。

Description

微服务的访问方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种微服务的访问方法和装置。
背景技术
在实际应用中,后端应用开发多为单个应用。然而,随着业务功能的增多,单体应用的结构越来越复杂,从而出现了越来越多的问题。比如:1)各组件依赖关系复杂,代码耦合度极高,在新增或修改功能时,需要花费大量时间确认对已有代码的影响;2)各组件对服务器资源的占用情况不同,垂直扩展需要兼顾CPU和内存,水平扩展只能以整个应用为单位,存在无谓的开支;3)庞大的代码导致开发时编译及测试的速度很慢,造成无意义的时间浪费。
目前,通常采用微服务的方式解决上述问题,即将微服务作为组件化的单元,把一个完整的业务系统拆分成多个小的服务,各微服务围绕业务能力自成体系,通过调用各个微服务来实现业务功能。然而,采用微服务的方式往往会导致网络配置过程非常繁琐。因此,需要提供一种微服务的访问方案。
发明内容
本发明提供了微服务的访问方法和装置,能够通过网关地址代替微服务地址实现微服务的访问,从而简化各个微服务之间的网络配置过程。
第一方面,本发明实施例提供了一种微服务的访问方法,该方法可以包括:
存储至少一个微服务;
针对每一个所述微服务,建立该微服务的微服务地址与网关地址之间的映射关系;其中,所述网关地址为当前启动的网关的地址;
获取用户请求所对应的访问网关地址;其中;所述用户请求用于访问所述至少一个微服务中的目标微服务;
根据所述映射关系,确定与所述访问网关地址相对应的目标微服务的目标微服务地址,并路由至该目标微服务地址。
在一种可能的实现方式中,所述建立该微服务的微服务地址与网关地址之间的映射关系,包括:
获取当前的第一微服务的服务IP和服务端口;
利用所述服务IP和服务端口构建所述第一微服务的微服务地址;
对所述第一微服务定义服务标识名;其中,所述服务标识名与该第一微服务唯一对应;
获取当前启动的网关端口;
利用所述服务IP地址、网关端口和所述服务标识名构建所述网关地址;
建立所述第一微服务的微服务地址与所述网关地址的映射关系。
在一种可能的实现方式中,在获取用户请求所对应的访问网关地址之后,且在确定与所述访问网关地址相对应的目标微服务的目标微服务地址之前,进一步包括:
判断所述用户是否具有访问所述目标微服务的权限;
若所述用户具有访问所述目标微服务的权限,则根据映射关系,确定所述目标微服务地址;
若所述用户不具有访问所述目标微服务的权限,则向所述用户返回权限验证失败的错误提示信息。
在一种可能的实现方式中,当所述服务标识名对应至少两个子服务,且每个所述子服务均部署在所述第一微服务下时,对每个所述子服务进行负载均衡。
在一种可能的实现方式中,所述对每个所述子服务进行负载均衡,包括:
根据各个所述子服务的处理效率,对每个所述子服务分配调用权重,以使所述第一微服务的各个所述子服务被调用时按照该调用权重进行调用;
和/或,
根据预先设定的调用顺序,对各个所述子服务进行轮流调用。
第二方面,本发明实施例还提供了一种微服务的访问装置,该装置包括:存储模块、映射建立模块、获取模块和确定模块;
所述存储模块,用于存储至少一个微服务;
所述映射建立模块,用于针对所述存储模块存储的每一个所述微服务,建立该微服务的微服务地址与网关地址之间的映射关系;其中,所述网关地址为当前启动的网关的地址;
所述获取模块,用于获取用户请求所对应的访问网关地址;其中;所述用户请求用于访问所述至少一个微服务中的目标微服务;
所述确定模块,用于根据所述映射建立模块建立的所述映射关系,确定与所述获取模块获取到的所述访问网关地址相对应的目标微服务的目标微服务地址,并路由至该目标微服务地址。
在一种可能的实现方式中,所述映射建立模块,用于执行如下操作:
获取当前的第一微服务的服务IP和服务端口;
利用所述服务IP和服务端口构建所述第一微服务的微服务地址;
对所述第一微服务定义服务标识名;其中,所述服务标识名与该第一微服务唯一对应;
获取当前启动的网关端口;
利用所述服务IP地址、网关端口和所述服务标识名构建所述网关地址;
建立所述第一微服务的微服务地址与所述网关地址的映射关系。
在一种可能的实现方式中,该微服务的访问装置,进一步包括:权限验证模块;
所述权限验证模块,用于执行如下操作:
判断所述用户是否具有访问所述目标微服务的权限;
若所述用户具有访问所述目标微服务的权限,则根据映射关系,确定所述目标微服务地址;
若所述用户不具有访问所述目标微服务的权限,则向所述用户返回权限验证失败的错误提示信息。
在一种可能的实现方式中,所述映射建立模块,还用于当所述服务标识名对应至少两个子服务,且每个所述子服务均部署在所述第一微服务下时,对每个所述子服务进行负载均衡。
在一种可能的实现方式中,
所述映射建立模块,用于根据各个所述子服务的处理效率,对每个所述子服务分配调用权重,以使所述第一微服务的各个所述子服务被调用时按照该调用权重进行调用;
和/或,
所述映射建立模块,用于根据预先设定的调用顺序,对各个所述子服务进行轮流调用。
由上述技术方案可知,在进行微服务的访问时,首先需要存储至少一个微服务,而且要对每一个微服务的微服务地址和网关地址建立映射关系。当用户进行微服务访问时,获取到用户请求所对应的访问网关地址,如此根据建立的映射关系,确定出与该访问网关地址相对应的目标微服务的目标微服务地址,从而通过路由至该目标微服务地址实现微服务的访问。由此可见,本方案中实现了网关路由替代实际微服务的地址。服务提供者的服务器可处于外网环境,只需将网关所在服务器开通外网端口,即可在互联网访问所有内部服务,从而不需要进行繁琐的网络配置。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种微服务的访问方法的流程图;
图2是本发明一个实施例提供的一种微服务的访问装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种微服务的访问方法,该方法可以包括如下步骤:
步骤101:存储至少一个微服务;
步骤102:针对每一个微服务,建立该微服务的微服务地址与网关地址之间的映射关系;其中,网关地址为当前启动的网关的地址;
步骤103:获取用户请求所对应的访问网关地址;其中;用户请求用于访问至少一个微服务中的目标微服务;
步骤104:根据映射关系,确定与访问网关地址相对应的目标微服务的目标微服务地址,并路由至该目标微服务地址。
在本发明实施例中,在进行微服务的访问时,首先需要存储至少一个微服务,而且要对每一个微服务的微服务地址和网关地址建立映射关系。当用户进行微服务访问时,获取到用户请求所对应的访问网关地址,如此根据建立的映射关系,确定出与该访问网关地址相对应的目标微服务的目标微服务地址,从而通过路由至该目标微服务地址实现微服务的访问。由此可见,本方案中实现了网关路由替代实际微服务的地址。服务提供者的服务器可处于外网环境,只需将网关所在服务器开通外网端口,即可在互联网访问所有内部服务,从而不需要进行繁琐的网络配置。
在一种可能的实现方式中,在建立微服务的微服务地址与网管地址之间的映射关系时,具体可以通过如下过程来实现:
获取当前的第一微服务的服务IP和服务端口;
利用服务IP和服务端口构建第一微服务的微服务地址;
对第一微服务定义服务标识名;其中,服务标识名与该第一微服务唯一对应;
获取当前启动的网关端口;
利用服务IP地址、网关端口和服务标识名构建网关地址;
建立第一微服务的微服务地址与网关地址的映射关系。
在本发明实施例中,通过对每一个微服务生成一个唯一的服务标识名,将该服务标识名构建到用户访问时的网关地址中,当用户要访问某一微服务时,只需要将该微服务所对应的唯一的服务标识名添加至网关地址中,通过访问该网关地址,由网关路由至用户所要访问的微服务。由此可见,通过建立网关地址和微服务地址之间的映射关系,用户可以通过网关路由访问具体的微服务,从而可以隐藏服务具体的IP地址,保证后台服务器的安全性。除此之外,通过对微服务建立唯一的服务标识名,并将其添加至地址映射关系中,能够保证根据网关地址确定微服务实际地址的准确性。
在一种可能的实现方式中,在获取到用户请求所对应的访问网关地址之后,且在确定与访问网关地址相对应的目标微服务的目标微服务地址之前,进一步可以对该访问请求进行鉴权验证,具体可以通过如下方式实现:
判断用户是否具有访问目标微服务的权限;
若用户具有访问目标微服务的权限,则根据映射关系,确定目标微服务地址;
若用户不具有访问目标微服务的权限,则向用户返回权限验证失败的错误提示信息。
在本发明实施例中,考虑由网关对所有的访问进行权限鉴定,即判断当前访问的用户是否具有访问目标微服务的权限,如果有权限访问,则可以根据映射关系确定出目标微服务的地址;如果没有访问权限,则向用户返回权限验证失败的错误提示信息。由此可见,本方案实现了由网关提供统一的权限校验,后端服务不需要关注权限校验的逻辑,避免了重复的代码。对于纯前端服务,也无需再依赖后台代码进行权限校验,从而可以减少由于不合法的访问请求对微服务进行调用时所造成的的资源浪费。
当然需要指出的是,在进行权限校验时可以包括多项或多层级的权限校验。比如可以对访问请求的有效性和合法性进行验证,具体可以包括如下验证过程:
1)判断用户访问请求的请求头中是否存在令牌token,如果token长度为空或者长度为0,则给用户返回token不存在的错误消息;如果token存在并且长度不为0,则可以进行下一步验证。
2)判断令牌token是否有效,考虑根据token从数据库中查询登录用户的账号信息,如果用户账号信息不存在,则返回token无效,用户没有登录的错误信息;如果用户账号信息存在,则可以进行下一步验证。
3)判断token是否超时中,根据token从数据库查询token的生成时间,与当前时间进行比较,如果超过设置的token超时时间,则返回token已过期,请重新登录的错误信息;如果没有超过设置的token超时时间,则可以进行下一步验证。
4)判断所访问的微服务是否存在,可以根据与微服务唯一对应的服务标识名判断用户请求所要访问的微服务是否存在,如果不存在,则返回要访问的微服务不正确或者URL没有按照规则定义的错误;如果存在,则可以进行下一步验证。
5)判断用户是否有权限访问该微服务,根据用户账户ID从数据库微服务权限表中判断该用户是否有权限访问该微服务,如果该用户可以访问该微服务,则路由至所要访问的微服务;如果该用户不能访问该微服务,则可进行下一步验证。
6)判断用户所拥有的角色是否有权限访问该微服务,如果该用户不能访问该微服务,则查找出该用户所拥有的角色,根据用户角色ID,微服务ID及授权类型(用户角色的分类)去查找该角色是否有权限访问该微服务。如果查找到该角色有权限,还可以进一步查找此角色中是否排除此用户,如果未排除此用户,说明该用户终端可以访问该微服务,则可以路由至所要访问的微服务;如果角色排除此用户,则返回没有访问该微服务权限的错误。
需要指出的是,在实际应用中,不仅限于上述1)至6)中的验证过程,还可以包括其他验证过程和方式。此外上述1)至6)中的验证步骤中不是每一个步骤都是必须的,可以根据具体应用场景验证一个或多个,且不对每一个验证过程的顺序进行限定
在进行微服务的访问过程中,还可以对客户端访问的请求进行统一的日志记录,该日志记录可以包括两种记录方式:文件记录及数据库记录。文件记录可以为默认的记录方式,对于所有的请求(不管请求成功还是失败)都会进行记录;数据库记录提供了一个可以配置的项,支持全记录及失败记录两种类型。还提供了按照微服务名称查询访问日志的汇总列表及按照微服务名称、用户访问微服务的报表等。如此利用详细的日志记录可以为问题及故障的排查提供有利的保障,对微服务调用的分析也提供了有利的支撑。
此外,还可以提供对微服务的监控,可以对微服务的状态等进行监控,通过专门的监控页面进行查看。主要包括监控微服务的健康性,监控微服务的可用性,微服务的访问压力情况,每个IP地址发布的微服务数量,以及微服务调用总次数、调用微服务的成功数量、微服务失败数量及平均延时等,记录监控日志,并且生成监控列表。如此通过提供微服务监控,监控微服务服务器是否运行正常,监控微服务的压力,并且根据情况生成警报信息及监控报表等,方便微服务调用过程中发生异常反馈和问题溯源,给问题排查及运维带来了有利的依据和可靠的保障。
在一种可能的实现方式中,当服务标识名对应至少两个子服务,且每个子服务均部署在第一微服务下时,对每个子服务进行负载均衡。
在本发明实施例中,可以在每个微服务下部署多个实例(子服务),即每个实例与该微服务都具有同一个微服务地址,如此当微服务的调用压力较大时,可以通过负载均衡来调节微服务的压力,即通过将微服务调用分布到该微服务下的各个实例,从而缓解服务器的调用压力。
在一种可能的实现方式中,在对每个子服务进行负载均衡时,具体可以通过如下方式实现:
根据各个子服务的处理效率,对每个子服务分配调用权重,以使第一微服务的各个子服务被调用时按照该调用权重进行调用;
和/或,
根据预先设定的调用顺序,对各个子服务进行轮流调用。
在本发明实施例中,在对子服务进行负载均衡时,可以考虑通过为每个子服务分配调用权重,然后在该对微服务进行访问时根据该调用权重对每个子服务进行调用。除此之外还可以对各个子服务设定调用顺序,在调用时按照设定的调用顺序依次对子服务进行调用。由此可见,本方案通过采用上述调用权重分配的方式或轮流调用的方式,能够将微服务的调用压力进行均衡分布,从而提升系统的运行效率。
下面对本发明实施例提供的一种微服务的访问方法作进一步的说明,具体可以包括:
(1)当有一个新的微服务发布时,系统程序将服务器IP及端口注册成一个服务,映射到网关的一个子路由中,用户通过“网关IP:网关端口/服务名/服务上下文”代替其所在服务器IP及端口(加上下文)进行访问。其中微服务通过应用开发平台nacos提供的应用程序API统一注册到nacos中。
(2)在对系统程序启动前已发布的微服务,需要从数据库中查询所有已发布的微服务,并依次进行注册。在服务器加载Servlet的时候运行,并且只执行一次,利用@PostConstruct注解public方法,在方法中查询数据库获取服务对应的服务名、服务器ip、服务端口,并完成注册。
(3)通过系统程序注册服务到nacos后,可在nacos的“服务管理”查看,对含有多个实例(子服务)的服务,可在“详情”里面配置实例权重(调用权重),用于负载均衡时的策略参考。
网关配置nacos地址后,会在启动时将自身作为一个服务注册到nacos中,同时自动发现nacos中已注册的其他服务。对于nacos中的其它服务,网关可通过服务名(服务标识名)路由到对应服务的具体实例。具体规则为:网关IP:网关端口/服务名/=服务IP:服务端口/。比如,一个具体的映射过程可以为:
a)一个tomcat服务对应的访问IP及端口为127.0.0.1:8000,以tomcat-test为服务名注册到nacos中。
b)网关以9000端口启动,通过127.0.0.1:9000/访问网关。
c)用户请求127.0.0.1:9000/tomcat-test/xxx即可访问到tomcat服务的实际地址127.0.0.1:8000/xxx。
d)对映射地址后的xxx路径不做改动进行路由。
(4)服务交由网关代理后,可统一进行权限鉴定、日志统计等功能。
通过在网关中添加一个全局过滤器,对经过网关的请求进行拦截、识别、鉴定。全局过滤器通过继承org.springframework、Cloud、gateway、filter、GlobalFilter等实现。
比如可在filter重写方法中自定义验证逻辑。
1.验证通过的放行
将此请求转发到下一个过滤器。
2.验证不通过的返回自定义异常信息(文字或页面)
1.提取页面内容
提前编辑404页面,验证不通过时使用错误信息替换指定内容。返回给前端。
当项目打成jar包运行时,读取文件内容需要直接从ClassPathResource读取文件流,读取文件目录会得到空结果。
2.将信息以页面方式返回给前端
1.指定UTF_8编码,避免Linux系统编码导致页面乱码。
以页面形式返回前端,需指定响应头类型为“html/text”。
如图2所示,本发明实施例还提供了一种微服务的访问装置,包括:存储模块201、映射建立模块202、获取模块203和确定模块204;
存储模块201,用于存储至少一个微服务;
映射建立模块202,用于针对存储模块201存储的每一个微服务,建立该微服务的微服务地址与网关地址之间的映射关系;其中,网关地址为当前启动的网关的地址;
获取模块203,用于获取用户请求所对应的访问网关地址;其中;用户请求用于访问至少一个微服务中的目标微服务;
确定模块204,用于根据映射建立模块202建立的映射关系,确定与获取模块203获取到的访问网关地址相对应的目标微服务的目标微服务地址,并路由至该目标微服务地址。
在一种可能的实现方式中,映射建立模块202,用于执行如下操作:
获取当前的第一微服务的服务IP和服务端口;
利用服务IP和服务端口构建第一微服务的微服务地址;
对第一微服务定义服务标识名;其中,服务标识名与该第一微服务唯一对应;
获取当前启动的网关端口;
利用服务IP地址、网关端口和服务标识名构建网关地址;
建立第一微服务的微服务地址与网关地址的映射关系。
在一种可能的实现方式中,该微服务的访问装置进一步包括:权限验证模块;
权限验证模块,用于执行如下操作:
判断用户是否具有访问目标微服务的权限;
若用户具有访问目标微服务的权限,则根据映射关系,确定目标微服务地址;
若用户不具有访问目标微服务的权限,则向用户返回权限验证失败的错误提示信息。
在一种可能的实现方式中,映射建立模块202,还用于当服务标识名对应至少两个子服务,且每个子服务均部署在第一微服务下时,对每个子服务进行负载均衡。
在一种可能的实现方式中,
映射建立模块202,用于根据各个子服务的处理效率,对每个子服务分配调用权重,以使第一微服务的各个子服务被调用时按照该调用权重进行调用;
和/或,
映射建立模块202,用于根据预先设定的调用顺序,对各个子服务进行轮流调用。
本发明一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行说明书中任一个实施例中的方法。
本发明一个实施例提供了一种计算设备,包括存储器和处理器,存储器中存储有可执行代码,处理器执行可执行代码时,实现执行说明书中任一个实施例中的方法。
可以理解的是,本说明书实施例示意的结构并不构成对微服务的访问装置的具体限定。在说明书的另一些实施例中,微服务的访问装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本说明书方法实施例基于同一构思,具体内容可参见本说明书方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.微服务的访问方法,其特征在于,包括:
存储至少一个微服务;
针对每一个所述微服务,建立该微服务的微服务地址与网关地址之间的映射关系;其中,所述网关地址为当前启动的网关的地址;
获取用户请求所对应的访问网关地址;其中;所述用户请求用于访问所述至少一个微服务中的目标微服务;
根据所述映射关系,确定与所述访问网关地址相对应的目标微服务的目标微服务地址,并路由至该目标微服务地址。
2.根据权利要求1所述的方法,其特征在于,所述建立该微服务的微服务地址与网关地址之间的映射关系,包括:
获取当前的第一微服务的服务IP和服务端口;
利用所述服务IP和服务端口构建所述第一微服务的微服务地址;
对所述第一微服务定义服务标识名;其中,所述服务标识名与该第一微服务唯一对应;
获取当前启动的网关端口;
利用所述服务IP地址、网关端口和所述服务标识名构建所述网关地址;
建立所述第一微服务的微服务地址与所述网关地址的映射关系。
3.根据权利要求1所述的方法,其特征在于,在获取用户请求所对应的访问网关地址之后,且在确定与所述访问网关地址相对应的目标微服务的目标微服务地址之前,进一步包括:
判断所述用户是否具有访问所述目标微服务的权限;
若所述用户具有访问所述目标微服务的权限,则根据映射关系,确定所述目标微服务地址;
若所述用户不具有访问所述目标微服务的权限,则向所述用户返回权限验证失败的错误提示信息。
4.根据权利要求2所述的方法,其特征在于,当所述服务标识名对应至少两个子服务,且每个所述子服务均部署在所述第一微服务下时,对每个所述子服务进行负载均衡。
5.根据权利要求4所述的方法,其特征在于,所述对每个所述子服务进行负载均衡,包括:
根据各个所述子服务的处理效率,对每个所述子服务分配调用权重,以使所述第一微服务的各个所述子服务被调用时按照该调用权重进行调用;
和/或,
根据预先设定的调用顺序,对各个所述子服务进行轮流调用。
6.微服务的访问装置,其特征在于,包括:存储模块、映射建立模块、获取模块和确定模块;
所述存储模块,用于存储至少一个微服务;
所述映射建立模块,用于针对所述存储模块存储的每一个所述微服务,建立该微服务的微服务地址与网关地址之间的映射关系;其中,所述网关地址为当前启动的网关的地址;
所述获取模块,用于获取用户请求所对应的访问网关地址;其中;所述用户请求用于访问所述至少一个微服务中的目标微服务;
所述确定模块,用于根据所述映射建立模块建立的所述映射关系,确定与所述获取模块获取到的所述访问网关地址相对应的目标微服务的目标微服务地址,并路由至该目标微服务地址。
7.根据权利要求6所述的装置,其特征在于,
所述映射建立模块,用于执行如下操作:
获取当前的第一微服务的服务IP和服务端口;
利用所述服务IP和服务端口构建所述第一微服务的微服务地址;
对所述第一微服务定义服务标识名;其中,所述服务标识名与该第一微服务唯一对应;
获取当前启动的网关端口;
利用所述服务IP地址、网关端口和所述服务标识名构建所述网关地址;
建立所述第一微服务的微服务地址与所述网关地址的映射关系。
8.根据权利要求6所述的装置,其特征在于,进一步包括:权限验证模块;
所述权限验证模块,用于执行如下操作:
判断所述用户是否具有访问所述目标微服务的权限;
若所述用户具有访问所述目标微服务的权限,则根据映射关系,确定所述目标微服务地址;
若所述用户不具有访问所述目标微服务的权限,则向所述用户返回权限验证失败的错误提示信息。
9.根据权利要求7所述的装置,其特征在于,
所述映射建立模块,还用于当所述服务标识名对应至少两个子服务,且每个所述子服务均部署在所述第一微服务下时,对每个所述子服务进行负载均衡。
10.根据权利要求9所述的装置,其特征在于,
所述映射建立模块,用于根据各个所述子服务的处理效率,对每个所述子服务分配调用权重,以使所述第一微服务的各个所述子服务被调用时按照该调用权重进行调用;
和/或,
所述映射建立模块,用于根据预先设定的调用顺序,对各个所述子服务进行轮流调用。
CN202110052332.4A 2021-01-15 2021-01-15 微服务的访问方法和装置 Active CN112866379B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110052332.4A CN112866379B (zh) 2021-01-15 2021-01-15 微服务的访问方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110052332.4A CN112866379B (zh) 2021-01-15 2021-01-15 微服务的访问方法和装置

Publications (2)

Publication Number Publication Date
CN112866379A true CN112866379A (zh) 2021-05-28
CN112866379B CN112866379B (zh) 2022-05-31

Family

ID=76006396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110052332.4A Active CN112866379B (zh) 2021-01-15 2021-01-15 微服务的访问方法和装置

Country Status (1)

Country Link
CN (1) CN112866379B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113949524A (zh) * 2021-09-03 2022-01-18 中国人民解放军军事科学院战争研究院 一种支持跨域环境下的服务联邦构建方法
CN114201314A (zh) * 2021-12-10 2022-03-18 优维科技(深圳)有限公司 一种基于契约的实现服务依赖发现和服务访问的路由方法
CN114449039A (zh) * 2021-12-27 2022-05-06 北京致远互联软件股份有限公司 一种多组织应用独立部署与服务路由的方法
CN114650221A (zh) * 2022-02-21 2022-06-21 福州汇思博信息技术有限公司 一种服务接口快速调用的方法及系统
CN115190178A (zh) * 2022-08-10 2022-10-14 苏州创意云网络科技有限公司 一种微服务分流方法、装置和设备
CN115242864A (zh) * 2022-06-28 2022-10-25 度小满科技(北京)有限公司 微服务访问方法、装置、电子设备及存储介质
CN115379015A (zh) * 2022-08-19 2022-11-22 中国银行股份有限公司 一种数据处理方法、装置及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190222988A1 (en) * 2018-01-17 2019-07-18 Entit Software Llc Service management and provisioning
CN110266517A (zh) * 2019-05-21 2019-09-20 深圳壹账通智能科技有限公司 基于网关的外部服务调用方法、装置及终端设备
CN110636115A (zh) * 2019-08-29 2019-12-31 平安医疗健康管理股份有限公司 跨云服务调用的处理方法、网关服务器及请求者服务器
CN111245916A (zh) * 2020-01-07 2020-06-05 苏宁云计算有限公司 基于微服务网关的服务调用方法、服务编排方法及装置
CN111586097A (zh) * 2020-04-01 2020-08-25 车智互联(北京)科技有限公司 一种网络请求处理方法、计算设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110071984A (zh) * 2018-01-24 2019-07-30 中兴通讯股份有限公司 一种网络标识映射方法和系统以及终端、标识网关
CN111726399B (zh) * 2020-06-08 2022-10-18 中国工商银行股份有限公司 Docker容器安全访问方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190222988A1 (en) * 2018-01-17 2019-07-18 Entit Software Llc Service management and provisioning
CN110266517A (zh) * 2019-05-21 2019-09-20 深圳壹账通智能科技有限公司 基于网关的外部服务调用方法、装置及终端设备
CN110636115A (zh) * 2019-08-29 2019-12-31 平安医疗健康管理股份有限公司 跨云服务调用的处理方法、网关服务器及请求者服务器
CN111245916A (zh) * 2020-01-07 2020-06-05 苏宁云计算有限公司 基于微服务网关的服务调用方法、服务编排方法及装置
CN111586097A (zh) * 2020-04-01 2020-08-25 车智互联(北京)科技有限公司 一种网络请求处理方法、计算设备及存储介质

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113949524A (zh) * 2021-09-03 2022-01-18 中国人民解放军军事科学院战争研究院 一种支持跨域环境下的服务联邦构建方法
CN113949524B (zh) * 2021-09-03 2023-03-07 中国人民解放军军事科学院战争研究院 一种支持跨域环境下的服务联邦构建方法
CN114201314A (zh) * 2021-12-10 2022-03-18 优维科技(深圳)有限公司 一种基于契约的实现服务依赖发现和服务访问的路由方法
CN114449039A (zh) * 2021-12-27 2022-05-06 北京致远互联软件股份有限公司 一种多组织应用独立部署与服务路由的方法
CN114650221A (zh) * 2022-02-21 2022-06-21 福州汇思博信息技术有限公司 一种服务接口快速调用的方法及系统
CN115242864A (zh) * 2022-06-28 2022-10-25 度小满科技(北京)有限公司 微服务访问方法、装置、电子设备及存储介质
CN115242864B (zh) * 2022-06-28 2023-12-05 度小满科技(北京)有限公司 微服务访问方法、装置、电子设备及存储介质
CN115190178A (zh) * 2022-08-10 2022-10-14 苏州创意云网络科技有限公司 一种微服务分流方法、装置和设备
CN115190178B (zh) * 2022-08-10 2024-03-08 苏州创意云网络科技有限公司 一种微服务分流方法、装置和设备
CN115379015A (zh) * 2022-08-19 2022-11-22 中国银行股份有限公司 一种数据处理方法、装置及系统

Also Published As

Publication number Publication date
CN112866379B (zh) 2022-05-31

Similar Documents

Publication Publication Date Title
CN112866379B (zh) 微服务的访问方法和装置
CN108810006B (zh) 资源访问方法、装置、设备及存储介质
WO2017097123A1 (zh) 访问请求转换的方法和装置
US8813225B1 (en) Provider-arbitrated mandatory access control policies in cloud computing environments
CN111290865A (zh) 一种服务调用方法、装置、电子设备和存储介质
CN110839087B (zh) 接口调用方法及装置、电子设备和计算机可读存储介质
KR102417742B1 (ko) Api 데이터 수집시스템 및 그에 관한 방법
CN110888838B (zh) 基于对象存储的请求处理方法、装置、设备及存储介质
CN110430205B (zh) 单点登录方法、装置、设备及计算机可读存储介质
CN112311786B (zh) 一种服务请求处理方法、装置、存储介质及计算设备
CN107172176B (zh) 基于配置管理的app网络连接方法、设备及配置服务器
CN110083338B (zh) 基于智能网关的服务系统
CN111510330B (zh) 接口管理装置、方法及存储介质
CN110933092A (zh) 一种基于jwt的单点登录实现方法及装置
CN112733103A (zh) 接口访问的控制方法和装置
CN111866124A (zh) 访问网页页面的方法、装置、服务器和机器可读存储介质
CN114172966A (zh) 单元化架构下的服务调用方法、服务处理方法及装置
CN111818035A (zh) 一种基于api网关的权限验证的方法及设备
CN111339524A (zh) 多租户权限控制方法及装置
CN113835836A (zh) 动态发布容器服务的系统、方法、计算机设备及介质
CN115934202A (zh) 一种数据管理方法、系统、数据服务网关及存储介质
CN113194099B (zh) 一种数据代理方法及代理服务器
CN114338684A (zh) 一种能源管理系统及方法
CN112860398A (zh) 基于规则引擎的数据处理方法、装置、设备及介质
CN115378645A (zh) 一种基于电力营销管理系统统一认证的验证方法及系统

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