CN117278640B - 一种基于数据归集的api接口调用方法及系统 - Google Patents

一种基于数据归集的api接口调用方法及系统 Download PDF

Info

Publication number
CN117278640B
CN117278640B CN202311132615.5A CN202311132615A CN117278640B CN 117278640 B CN117278640 B CN 117278640B CN 202311132615 A CN202311132615 A CN 202311132615A CN 117278640 B CN117278640 B CN 117278640B
Authority
CN
China
Prior art keywords
service
request
index
micro
cache
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.)
Active
Application number
CN202311132615.5A
Other languages
English (en)
Other versions
CN117278640A (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.)
Changhe Information Co ltd
Beijing Changhe Digital Intelligence Technology Co ltd
Original Assignee
Changhe Information Co ltd
Beijing Changhe Digital Intelligence 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 Changhe Information Co ltd, Beijing Changhe Digital Intelligence Technology Co ltd filed Critical Changhe Information Co ltd
Priority to CN202311132615.5A priority Critical patent/CN117278640B/zh
Publication of CN117278640A publication Critical patent/CN117278640A/zh
Application granted granted Critical
Publication of CN117278640B publication Critical patent/CN117278640B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种基于数据归集的API接口调用方法及系统,涉及数据处理技术领域,包括:接收API接口调用请求;进行安全认证和权限控制;检查请求是否命中本地缓存,如果是,返回缓存结果;如果否,根据请求类型将请求路由到对应的微服务集群;微服务通过服务注册中心实现动态服务发现;微服务查询索引系统,如果命中返回索引结果;如果否,将请求写入消息队列;返回请求ID给调用方;结算节点从消息队列消费请求消息,查询存储系统,进行计算,并将计算结果写入缓存系统;发布包含请求ID和结果位置的完成消息;API网关根据完成消息,从缓存系统获取结果,返回给用户;将计算结果存入持久化存储系统,供后续请求直接查询。解决了数据访问效率低的问题。

Description

一种基于数据归集的API接口调用方法及系统
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于数据归集的API接口调用方法及系统。
背景技术
互联网技术和移动互联网的发展,导致API服务数量激增,如何提高API的使用效率成为一个重要问题。
目前API服务存在访问格式不统一的问题。不同系统的API可能采用RESTful、SOAP等不同接口格式,导致调用复杂度高,数据访问效率低。
在相关技术中,比如中国专利文献CN111064722B中提供了一种以API方式实现集协议转换的数据共享方法,包括步骤:API服务录入;其中,录入方式至少包括:通过Swagger文档快速导入RESTful,或通过WSDL文档快速导入WebService或手工录入API服务;确定录入的API服务所属的服务类型,将对应的API服务接口信息格式从非第一格式的第二格式转换为第一格式;其中,第一格式为RESTful格式,第二格式是第一格式之外的格式;对接口信息格式转换后的API服务进行服务联调,保证服务在正式发布后正常调用;其中,服务联调的方式至少包括关联插件和自定义代理地址;服务联调后进行联调测试,并在测试通过后进行服务发布。但是该方案至少存在如下技术问题:转换过程增加了API服务发布的额外时间成本,降低了API服务上线效率;多格式API并存,访问调用方需要同时支持多种不同访问方式,增加了调用复杂度;没有提供API访问优化的机制,数据访问效率有限。
发明内容
1.要解决的技术问题
针对现有技术中存在的数据访问效率低问题,本发明提供了一种基于数据归集的API接口调用方法及系统,它可以实现接口调用性能优化和系统稳定可用,全面解决了现有技术中数据访问效率低的问题。
2.技术方案
本发明的目的通过以下技术方案实现。
本说明书实施例的一个方面提供一种基于数据归集的API接口调用方法,包括:接收用户发起的API接口调用请求;检查请求参数,进行安全认证和权限控制;检查请求是否命中本地缓存,如果命中,直接返回缓存结果;如果未命中缓存,则根据请求类型将请求路由到对应的微服务集群;微服务通过服务注册中心实现动态服务发现;微服务首选查询索引系统,如果命中索引直接返回索引结果;如果索引未命中,则将请求写入消息队列;并返回请求ID给调用方;结算节点从消息队列消费请求消息,查询存储系统,进行计算,并将计算结果写入缓存系统;计算完成后,发布包含请求ID和结果位置的完成消息;API网关根据完成消息,从缓存系统获取结果,返回给用户;将计算结果存入持久化存储系统,供后续请求直接查询。
进一步的,检查请求参数,进行安全认证和权限控制包括:使用Redis内存缓存系统存储用户认证信息和静态权限控制策略;根据接口的敏感程度和安全级别,设置不同的权限校验粒度;将权限分为静态权限和动态权限,静态权限长期存储在缓存中,动态权限实时从数据库或外部系统加载;对敏感权限的修改进行日志记录;使用RBAC基于角色的API访问控制;支持细粒度的列级访问控制,限制敏感字段的访问;构建用户画像,根据用户行为模型智能分析并动态授予相应的默认权限;API网关统一处理所有微服务的认证授权;其中,所述用户认证信息包含:用户标识、密钥和权限列表。
进一步的,微服务通过服务注册中心实现动态服务发现包括:每个微服务向服务注册中心注册自身的网络地址信息;服务调用方从服务注册中心获取服务提供方的网络地址信息;服务调用方使用所获取的网络地址信息调用服务提供方的接口;服务注册中心实时监控每个微服务实例的状态,将故障实例的网络地址信息从注册中心删除;服务注册中心将微服务的网络地址信息缓存在本地或分布式缓存中;服务注册中心采用心跳检测机制实时探测微服务状态;在服务调用方与提供方之间设置负载均衡器。
进一步的,所述服务注册中心包括注册数据库,用于存储微服务的网络地址信息;所述注册数据库采用主从高可用结构,主数据库处理写操作,从数据库作为备份;负载均衡器从服务注册中心获取微服务网络地址信息并缓存;接收到服务调用请求后,负载均衡器根据缓存的服务提供方地址选择服务实例并实现请求分流;负载均衡器定期从服务注册中心获取并更新缓存的服务提供方网络地址信息;负载均衡器采用的缓存更新策略为定时更新或数据变化更新。
进一步地,微服务首选查询索引系统,如果命中索引直接返回索引结果包括:设置索引系统,用于存储微服务的查询索引信息;接收到微服务查询请求时,先访问索引系统,查询是否存在对应的索引结果;如果索引系统中存在对应的索引结果,直接返回索引查询结果,完成查询;如果索引系统中不存在对应的索引结果,再将查询请求路由到负载均衡器,由负载均衡器根据缓存的服务提供方地址实现请求分流和查询;将微服务的查询结果生成索引,存储到索引系统中;定期或根据定量策略对索引系统中的索引信息进行更新或失效处理;其中,所述索引信息为查询请求参数、查询结果和结果缓存超时时间。
进一步地,索引系统包括:缓存索引的缓存系统;用于索引查询的索引服务;用于索引生成和存储的索引建设服务;其中,所述缓存系统采用分布式缓存架构。
进一步地,结算节点与存储系统部署在微服务集群内;结算节点与存储系统连接方式为数据库连接池。
进一步地,结算节点水平扩展方式为基于Docker容器的实时扩容;存储系统为分布式数据库或对象存储系统。
进一步的,API接口调用方法还包括:在微服务调用链路上设置限流模块,对服务调用请求进行限流;限流模块根据服务提供能力设定限流阈值,当请求达到阈值时进行限流;限流方式为拒绝请求、排队等待或降级处理;在微服务调用链路上设置熔断模块,对服务调用状态进行监控;当监控到服务调用异常比例超过设定阈值时,触发熔断开关;熔断开关触发期间,所有请求不再调用服务,直接返回或调整到降级处理;检测服务恢复正常后,关闭熔断开关,恢复服务调用;其中,所述降级处理为返回默认数据、读取缓存或失败重试处理;对服务调用状态进行监控为响应时间指标或失败比例指标。
本说明书实施例的另一个方面还提供一种基于数据归集的API接口调用系统,包括:API网关模块,用于接收用户发起的API接口调用请求,并根据请求路由到对应的微服务集群;安全认证鉴权模块,用于检查请求参数,进行安全认证和权限控制;缓存模块,用于缓存接口调用结果,接收到重复请求时直接返回缓存结果;服务注册中心模块,用于微服务进行动态服务注册与发现;负载均衡模块,用于从服务注册中心获取服务提供方地址并实现请求分流;索引系统模块,用于存储并首先响应接口查询请求;消息队列模块,用于接收索引未命中请求,并将请求发送给结算节点;结算节点模块,用于从消息队列消费请求,进行计算,将结果写入缓存;限流与熔断模块,用于对服务请求进行限流和熔断处理。
3.有益效果
相比于现有技术,本发明的优点在于:
(1)通过缓存、索引、消息队列等机制,可以快速响应重复请求,避免每次都查询后端服务,减少不必要的网络通信和计算,提高了API接口调用的性能和效率;
(2)统一的安全认证鉴权模块可以进行细粒度的访问控制,保障接口调用安全。限流、熔断等机制可以提高系统稳定性,防止故障扩散,提高了API接口调用的安全性和可靠性;
(3)通过服务注册中心实现服务动态发现,使服务提供方可以水平扩展,灵活应对访问压力变化。系统各组件采用分布式架构,可以根据需求独立水平扩展,提高了API接口调用的灵活性和可扩展性。
附图说明
本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的一种基于数据归集的API接口调用方法的示例性流程图;
图2是根据本说明书一些实施例所示的安全认证和权限控制的示例性流程图;
图3是根据本说明书一些实施例所示的微服务实现动态服务发现的示例性流程图;
图4是根据本说明书一些实施例所示的限流和熔断的示例性流程图;
图5是根据本说明书的一些实施例所示的一种基于数据归集的API接口调用系统的示例性模块图。
图中标号说明:200、一种基于数据归集的API接口调用系统;210、API网关模块;220、安全认证鉴权模块;230、缓存模块;240、服务注册中心模块;250、负载均衡模块;260、索引系统模块;270、消息对立模块;280、结算节点模块;290、限流与熔断模块。
名词解释
数据归集,数据归集指的是从多个渠道或来源收集各类数据,然后进行统一加工、处理,形成集中的、统一的数据集的过程。在本申请中,数据归集具体可以理解为:API网关接收来自不同终端或渠道的用户请求,进行归集;各微服务将其计算结果进行归集,统一存储到持久化存储系统中;索引系统将不同微服务的查询结果进行归集生成索引;消息队列将来自API网关的请求进行归集后发送给结算节点;服务注册中心将各微服务实例的状态和地址信息进行归集后提供给调用方;缓存系统对不同请求的计算结果进行归集存储,用于响应重复请求;限流模块收集来自各调用方的请求状态进行归集分析,以进行限流;熔断模块收集服务调用的监控指标进行归集,以确定是否要熔断。归纳起来,数据归集在该架构中主要起到收集各类分散数据,形成统一数据集以方便后续处理和查询的作用,是实现整个系统目标的基础。
API接口指的是应用程序接口(Application Programming Interface),是一种软件接口,用于不同的软件程序、模块或系统之间进行交互和通信。在本申请中,API接口具体指:API网关向用户客户端暴露的统一入口接口,接收客户端的访问请求;微服务之间相互访问和通信所依赖的接口,实现服务间的解耦;服务注册中心提供的接口,用于微服务实例注册和服务发现;缓存系统提供的接口,用于缓存读写;消息队列提供的接口,用于消息发送和消费;持久化存储系统提供的数据访问接口;索引系统提供的索引查询接口;各功能模块如限流、熔断等对外提供的管理接口。通过定义统一的API接口与规范,不同的系统和模块可以灵活地进行交互和集成,降低了耦合,提高了灵活性。API接口在微服务架构中扮演着连接各模块的重要角色。总之,API接口是实现微服务架构中的服务交互和通信的关键所在,是系统可扩展和可靠的基础。
微服务集群是由多个提供相同服务的微服务实例组成的集群,它具有以下特征:集群中的每个微服务实例都是独立的应用程序,可以使用不同的语言和技术栈实现;微服务实例之间通过网络进行交互,通常采用轻量级通信协议如HTTP RESTful API;每个微服务实例都可以进行独立部署和扩容;集群使用负载均衡器将请求分发到多个服务实例;服务注册中心维护着微服务集群的服务实例信息;调用方不需要关心具体的服务实例,通过服务发现获取实例信息后进行调用;集群作为一个整体提供复杂业务功能和高可用能力。在本申请中,微服务集群指的是用来实现特定业务功能的一组微服务实例的集合,通过服务注册与发现、负载均衡来提供服务。微服务集群是微服务架构的基本组织单元。总而言之,微服务集群通过集群管理和协调构建高可用和易扩展的服务。
服务注册中心是微服务架构中的一个关键组件,它管理和维护着整个微服务系统中的服务实例信息。服务注册中心具有以下功能:提供服务注册接口,微服务实例在启动时向注册中心注册自己的元数据,如服务名称、IP、端口等;提供服务注销接口,微服务实例在下线时向注册中心注销自己的服务;服务查询接口,提供给调用方查询服务实例信息的功能;实例心跳检查,通过心跳检测微服务实例状态,下线故障实例;监控并维护服务实例列表,支持服务的动态注册和发现;将服务实例信息同步缓存在调用方本地加速访问;支持不同的服务注册模式如Eureka、Zookeeper等。综上,服务注册中心负责存储微服务实例信息并使服务之间可以互相发现,是微服务架构中的关键基础设施,实现了服务的注册与发现。在本申请中,服务注册中心为各微服务提供动态服务注册与发现功能,是系统可扩展性的核心组件之一。
索引系统是提升数据查询性能的核心组件,其主要作用是构建数据结构化索引,以提升查询效率。在本申请中,索引系统具有以下特征:预先存储微服务接口的查询和结果,构建查询索引;接收到查询请求时,先访问索引系统,如果命中则直接返回索引结果;如果索引不存在,则将请求发送到微服务进行实际查询;将微服务查询结果生成索引存储到索引系统,供后续查询重用;对索引进行定期更新,使索引与源数据同步;支持分布式缓存架构,提高索引访问性能;避免重复的全量计算,降低微服务计算压力;将部分计算过程预计算并存储为索引,加速整体响应速度。综上,索引系统通过预计算和缓存查询结果实现高性能数据访问,是提升微服务接口查询性能的核心组件之一。
消息队列是一种应用间通信的中间件,主要具有以下功能:异步处理,允许发送方立即返回,接收方从队列中获取消息进行处理;解耦:发送方和接收方不需要直接耦合;消息缓冲:队列起到数据缓冲的作用;消息分发,实现一条消息被多个接收方消费;流量削峰:队列可以对消息做缓冲平滑峰值流量。在本申请中,消息队列的作用是:接收来自API网关的请求消息,缓解请求压力;将请求异步发送给结算节点进行处理,解耦两者之间的直接调用;多个结算节点可以并行从队列中消费消息实现水平扩展;避免结算节点不可用时消息丢失;提供顺序保证,按产生顺序处理请求。综上,消息队列实现了异步通信、削峰限流、服务解耦等效果,是微服务架构中重要的基础设施。
请求ID是用于标识和跟踪一次请求的唯一标识符。在本申请中,请求ID具有以下特征:API网关在接收到用户请求时,生成一个唯一的请求ID;将请求ID随用户请求一起发送到后端服务;后端服务将请求ID与处理结果一起发送到消息队列;API网关使用请求ID在缓存中查询对应的处理结果;请求ID将一次请求的调用链路贯穿始终;通过请求ID可以查询到一次请求的处理状态;请求ID用于跟踪请求处理情况,定位系统问题;请求ID与调用链路追踪系统相结合,可以完整复现一次调用。综上,请求ID起到标识请求、跟踪处理链路、查找结果等作用,用于跟踪和调试分布式系统。
结算节点是处理具体业务逻辑的组件,主要具有以下功能和特征:从消息队列中消费原始的请求消息;根据请求参数,调用后端服务,完成业务计算和处理;将计算结果写入缓存系统;生成处理完成的消息,发送到消息队列;水平扩展能力强,可以动态增加结算节点;不同结算节点之间没有状态依赖;结算节点故障时,请求可以转发到其他节点;一个请求可以被多个结算节点并行消费,提高吞吐量;结算节点关注业务计算,不处理通信协议。综上,结算节点是任务关键业务逻辑处理的组件,通过水平扩展和解耦来提高系统处理能力,是提升微服务吞吐量的核心所在。在本申请中,结算节点接收消息队列的请求,完成具体的业务计算,实现系统计算能力的可弹性扩展。
消费请求消息是指结算节点从消息队列中取出请求消息并处理的过程。具体来说,消费请求消息涉及以下步骤:结算节点持续监听消息队列,等待请求消息的到达;当请求消息进入队列后,结算节点将其取出队列;解析出请求消息中的相关信息,如请求参数、请求ID等;根据请求信息调用后端服务,完成业务运算逻辑;将运算结果写入缓存或存储系统;生成响应消息,发送到消息队列;如果消息处理失败,可以重试或发送到死信队列;消息被消费后,会被消息队列删除或标记为已消费;支持消费确认机制,确保消息不被重复消费;多个结算节点可以并行消费同一条请求消息。综上,消费请求消息是结算节点的核心功能之一,用来处理异步入队的请求,完成具体的业务运算逻辑,是提高系统吞吐量的关键。
一个提供持久数据存储功能的系统,具有以下特征:将结算节点处理后的结果持久化存储,比如写入数据库;提供数据查询、更新的接口或服务,给其他系统调用;遵循事务一致性原则,保证存储计算结果的完整性;支持冗余备份、故障转移,确保存储的高可用性;提供水平扩展能力,以支持大量存储访问;为了性能,可采用缓存机制,如Redis缓存久存数据;存储格式采用优化的数据结构,提高查询访问效率;提供数据复制功能,满足多中心数据同步需求;支持不同类型数据存储,如关系数据、文档数据、对象存储等;与索引系统配合,通过索引加速数据查询。综上,持久化存储系统在该架构中是用来持久保存结算节点处理结果的基础设施,保证了数据的持久化和后续访问,具有高可用、高性能、可扩展等特点。
权限校验粒度是指在进行访问控制时,划分权限的颗粒大小。在本申请中,权限校验粒度体现在:细粒度的权限划分,至接口级别甚至数据字段级别;用户角色与细粒度权限进行绑定,实现精细化的访问控制;不同API接口可以设置不同的访问权限要求;一个接口可以设置不同数据分级的访问权限;支持按用户、接口、数据字段组合设置权限控制策略;不同的用户角色可以看到接口的不同数据子集;细粒度权限设置可以实现对敏感数据的选择性屏蔽;粒度细支持按最小资源级别鉴权,提高系统安全性;粒度细可以实现非功能性的差异化访问控制需求。综上,细粒度的权限校验有助于提高访问控制的精确性和可控性,是实现复杂安全策略的基础。但过于细粒度也会增加复杂性。需根据实际需求进行权限设计。
相对于动态权限而言,静态权限具有预定义和固定的特点。其在本申请中的主要特征包括:权限配置存在代码或配置文件中,部署后不会改变;用户的角色和权限在系统初始化时预先设定,不会动态变更;调用方需要预先分配访问权限才能调用接口;权限控制规则相对固定,不会根据实际情况实时调整;权限隔离性强,调用方无法通过操作获取更高权限;需要显式地修改代码或配置来添加或删除权限;即使在运行时也不能对权限配置做动态调整;简单易实现,但不够灵活;需要在部署前确定好完整的权限模型。综上,静态权限可以通过预置的权限配置实现简单的访问控制,但缺乏灵活性和动态调整能力。
相对于静态权限,动态权限具有在运行时可以调整的特征。在本申请中,动态权限体现在以下几个方面:权限配置存储在数据库或外部系统,可以动态修改;用户和角色的权限映射是在运行时生成和调整的;权限控制规则可以根据实际情况动态调整;支持根据用户上下文信息调整权限,实现按场景控制访问;可以通过管理接口在运行时增删改权限配置;权限调整后可以立即生效,无需重新部署;可以实现细粒度和临时性的动态权限控制;支持根据复杂策略动态计算用户的细粒度权限;更灵活,可以满足变化的访问控制需求;实现权限的实时调整,无需中断服务。综上,动态权限通过运行时计算和调整,可以实现更灵活和智能的访问控制,但实现更为复杂。
敏感权限是指对系统安全和关键数据访问有重要影响的权限。它具有以下特征:授予敏感权限可能导致关键数据泄露或系统被攻击;敏感权限只能授予可信任的用户角色;敏感权限的授予需要更多审批流程;敏感权限的使用需要详细日志记录和审计;敏感权限需要基于最小化的原则,只授予完成任务所需的最小权限;敏感权限需要定期审查,撤销或调整不需要的权限;支持敏感权限的动态调整和收回;对敏感权限的使用需要设置高强度的多因素验证;对敏感权限实施业务隔离,避免与其他系统交互;敏感权限用户的操作需要监控分析以发现异常。综上,识别出敏感权限并进行专门管理是访问控制的重要手段,可以提高系统关键数据和资源的安全性。
RBAC(Role-Based Access Control,基于角色的访问控制)可以理解为:一种根据用户角色动态控制访问权限的技术。其典型特征包括:将用户与角色进行绑定,一个用户可以分配多个角色;对资源和操作进行角色分组,定义不同角色的访问权限;用户通过所分配角色而获得这些角色的权限;访问控制根据用户的角色而非用户身份进行;可以将权限集中分配给角色,简化权限管理;可以根据业务需求对角色设定权限集合;用户或角色的权限可以动态调整;支持细粒度的角色权限设计;角色权限关系与业务解耦;简化用户及权限的管理,易于维护。综上,RBAC通过角色抽象简化了权限管理,可以实现细粒度和动态的访问控制。
列级访问控制是一种数据库访问控制的粒度,可以对表中的列进行细粒度的权限控制。其主要特征包括:可以在表级指定的权限基础上,进一步细化对列的访问权限;不同的列可以具有不同的访问权限;可以控制对列的SELECT(读取)、UPDATE(更新)等操作权限;可以隐藏对部分列的访问,实现列级的数据遮蔽;可以限制用户只访问需要的列,而不是全表访问;减少不必要的数据暴露,提高数据安全性;细粒度的列访问控制可以实现更复杂的权限要求;不同用户可以看到不同的列子集,实现视图过滤;需要数据库及应用层支持列级访问控制。综上,列级访问控制可以实现表数据的细粒度访问控制,但实现复杂度也更高。在本申请中,可以使用列级访问控制来实现接口细粒度权限控制。
用户画像是指通过分析和挖掘用户数据,描绘出反映用户特征的模型或概要。其关键特征包括:收集各类用户数据,如人口属性、行为数据、交易数据等;通过数据分析,识别用户的特征和规律;从多维度建立用户模型,如性别、年龄、职业、爱好等;持续丰富和完善用户画像,形成动态画像;用户画像可以基于角色、人口属性或行为特征建模;用户画像可以应用于个性化推荐、精准营销等业务场景;用户画像需要保障用户数据隐私和权益;可以为用户划分群体,进行细分用户战略;结合算法和模型,识别高价值或流失风险用户;以用户为中心,辅助业务决策和资源优化配置。
默认权限是指在访问控制系统中,新用户或对象被创建时自动分配的初始权限。默认权限通常具有以下特征:新用户或对象不需要手动分配初始权限;默认权限往往是最小、安全的权限集;默认权限可以作为权限分配的基础,后续再进行扩充;默认权限通常对应一组通用的基本操作权限;默认权限可以减少权限分配的工作量;默认权限需要谨慎设置,不能包含敏感权限;可以根据不同用户角色设定不同的默认权限;默认权限应遵循最小特权原则;默认权限的分配需要进行日志审计;默认权限可以加快新用户或对象的使用。综上,默认权限为新用户提供一个安全的权限起点,减轻管理工作。
Redis,是一种基于内存的键值对数据库,通常被称为数据结构服务器。它的主要特征包括:数据全部存储在内存中,读写性能很高;支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等;支持主从复制,实现高可用性;支持持久化,可以保存到磁盘防止数据丢失;支持事务,可以一次执行多个命令;丰富的特性,如发布订阅、LUA脚本、流水线等;简单、轻量,用C语言实现,可嵌入其他应用;可用于缓存、消息队列、排行榜、计数器等多种应用场景Redis提供丰富的数据结构和特性,是常用的分布式缓存和NoSQL数据库之一,被广泛应用于各种系统中。
API网关是系统对外提供服务的统一入口,具有以下特征:统一处理外部请求,实现系统的统一访问入口;负责请求路由,将请求转发到后端服务;负责请求鉴权,对访问请求进行权限控制;负责请求调度,实现请求限流、熔断等功能;实现跨域控制、安全防护等功能;支持扩展网关中间件实现各种复杂处理逻辑;简化客户端调用,外部系统只需与网关交互;客户端不需要知道后端的拓扑结构;可以修改后端服务而不影响客户端;可以实现服务聚合、协议转换等功能。综上,API网关隐藏了系统内部结构,为外部客户端提供统一服务访问入口。
微服务架构中一个微服务的单个运行时过程。其主要特征包括:每个微服务实例通常是一个进程或容器;微服务实例包含完整的微服务业务代码和运行环境;实例之间没有状态依赖,可以独立启动和关闭;实例按需水平扩展,实现负载均衡;一个微服务可以有多个实例部署;实例故障后可以被服务发现移除或者重新启动;服务实例的注册和去注册操作与服务发现系统交互;服务请求按策略负载均衡到实例;实例数动态调整以应对容量的变化;实例无状态,不存储服务调用数据。综上,微服务实例是微服务的运行时实体,支持扩展和故障转移,实现高可用。
心跳检测机制,一种微服务实例与服务注册中心之间采用周期性消息交换的方式,实现实例健康状态检测的机制。具体特点包括:实例定期向注册中心发送心跳包表示存活;注册中心收到心跳后,确认实例正常工作;一定时间内没收到心跳,注册中心标记实例故障;注册中心移除标记故障的实例信息;支持配置心跳间隔时间和超时时间;可以快速检测出故障实例,实现故障转移;注册中心也可以主动发起心跳检测请求;心跳可以包含实例的状态、元数据等信息;心跳需要防止网络抖动而误判;支持实例发送心跳的重试机制;心跳需要确保时间同步,避免误判。综上,心跳检测机制实现了实时监测实例状态的功能,是微服务架构的重要组件之一。
负载均衡器,一种将访问请求流量分发到多台服务提供者的网络设备或软件。其主要特征包括:在客户端和服务端之间实现请求的分发;根据策略将请求分发到后端不同的服务实例;常用的策略有轮询、随机、权重等;可以实现跨机房区域的流量分发;支持按服务端的负载状况调整策略;保证后端服务实例的高可用;支持故障实例的故障转移;实现服务水平扩展和弹性伸缩;降低服务方的请求压力,提高系统稳定性;对外提供统一的服务访问入口;实现服务路由、消息转发等功能。综上,负载均衡器通过流量分发实现服务的可靠性、伸缩性、高可用性等。
注册数据库,微服务架构中,用于存储服务实例注册信息的数据库。其典型特征包括:记录微服务的名称、地址、通信协议等元信息;存储微服务实例的网络地址,支持服务发现;注册微服务实例的上线和下线事件;节点持续推送自身最新信息给注册中心;提供服务和实例的实时状态查看;支持不同类型的过滤查询;高可用设计,避免单点故障;与服务发现、配置中心集成;存储服务元数据,用于接口文档生成;存储服务访问控制策略等其他配置;也可以基于区块链实现分布式注册数据库。综上,注册数据库保存了微服务运行时的关键信息,是微服务架构的核心基础设施之一。在本申请中,注册数据库用于微服务实例信息的存储。
主从高可用结构,一种通过主备节点实现服务高可用的架构模式,具有以下典型特征:包含一主一或多从节点,主节点对外提供服务;主节点把状态同步到从节点,保证状态一致;主节点故障时,备节点消除故障,立即接管服务;从节点与主节点实时互备,可以快速切换;对外服务保持不中断,实现故障自动转移;部署主备节点策略,实现容灾备份;支持手动或自动进行主备切换;可根据需要启动多个从节点;从节点可以视情况承担读操作负载;通过冗余提高系统可用性和可靠性。综上,主从架构通过冗余实现服务的高可用,是提高系统容错性的重要手段。
请求分流,在服务架构中,根据指定规则将请求流量分散到不同后端服务的技术机制。主要的特征包括:将大流量分发到多个服务实例;根据源地址、URL、内容等规则进行分流;不同的请求分发到不同的服务器集群;配合服务发现和负载均衡使用;可以根据服务器负载状况动态分流;分散和减轻服务端压力,提高系统稳定性;可以按需独立扩展流量子集的处理能力;支持按区域、设备等分流;可以实现灰度发布、AB测试等。10.通常在网关层面实现请求分流;需要确保同一个用户的请求保持会话亲和性。综上,请求分流通过分而治之提高系统横向扩展能力,实现服务治理。在本申请中,可以采用请求分流将流量分配到不同微服务。
分布式缓存架构,在分布式系统中,通过部署分布式缓存节点实现高速缓存的网络拓扑结构。其典型特征包括:在分布式系统中的多个节点上部署缓存实例;缓存实例组成一个逻辑上的分布式缓存集群;数据按一定规则分布在多个缓存实例中存储;支持扩容缓存容量和提高缓存并发能力;访问请求自动寻址到缓存数据所在节点;节点间根据协议保证缓存数据一致性;一个缓存集群可覆盖多个应用系统;可根据地域情况部署多地域的缓存集群;提供缓存服务的高可用性和容错性;缓存集群基于无状态设计,节点无依赖;提供读写分离、事务支持等功能。综上,分布式缓存架构实现了可扩展、高性能、高可用的缓存服务。在本申请中,分布式缓存可用于提升接口响应速度。
结算节点在这里指的是消费请求消息、进行实际业务计算并生成结果的节点,具有以下典型特征:接收来自消息队列的请求消息;根据请求消息,查询或计算得到结果;将计算结果写入缓存系统;发布计算完成的消息,通知请求完成;结果也会写入持久化存储系统;结算节点集群可横向扩展提高处理能力;实现高可用,避免单点故障;节点可在网络中动态注册和发现;根据算法确保节点的可信任性;符合一定的性能指标要求。综上,结算节点在这里扮演着核心运算和处理的角色,是请求处理的关键所在,需要提供足够的扩展性和高可用性。
数据库连接池是一种数据库访问机制,用于提高系统访问数据库的性能和可靠性。其典型特征包括:预先创建某个数量的数据库连接,放入连接池中;应用程序需要访问数据库时,直接从池中取出连接;使用完毕后,将连接放回连接池中,而不是实际关闭连接;达到重复使用存在的连接,避免频繁创建和关闭连接;减少连接建立和关闭的资源开销;连接池管理可用连接数,实现连接共享;支持连接的防止、检测和重置;支持设置池的最大连接数及等待超时;不同数据库可以建立独立的连接池;连接池提高系统对数据库访问的性能和稳定性。综上,数据库连接池是访问数据库的重要手段,可以显著优化应用程序的性能。在本申请中,连接池可用于提升微服务对数据库的访问效率。
Docker容器是一种轻量级的应用容器封装技术,具有以下典型特征:提供标准化的应用运行环境;包含应用代码、运行时依赖、环境变量等;将应用进程封装并与主机隔离;基于容器镜像快速创建和启动;镜像内容可移植,便于分发和部署;可在一台主机上运行多个相互隔离的容器实例;每个容器有独立的文件系统、进程空间等;容器间共享主机OS内核,更轻量;支持通过镜像继承、组合来构建新镜像;镜像使用分层存储,提高重复利用和最小化大小;可基于Kubernetes进行编排管理;相比虚拟机更高效、灵活和轻量。综上,Docker容器实现轻量级虚拟化,用于在主机上部署和运行应用,在本申请中可用于微服务打包部署。
对象存储系统,一种用于存储和管理非结构化数据对象的存储系统,具有以下典型特征:以对象的方式组织和存储数据,每个对象包含数据、元数据等;对象通过唯一标识符访问,无需确定对象位置;支持通过网关或API访问对象存储集群;系统自动管理对象的存放位置和复制;支持对象元数据表示对象特征;提供对象数据的冗余备份和容灾能力;无限水平扩展存储能力,按用量计费;支持大规模对象存储,数量可达数十亿量级;提供对象数据的持久性保证;支持不同访问权限控制等安全管理功能;与计算和网络资源可深度集成;应用场景包括云存储、数据备份、媒体存储等。综上,对象存储系统提供易扩展、高度保障的数据存储服务。在本申请中,可以采用对象存储来存储各种非结构化数据。
分布式数据库,在多个节点上部署数据库实例,并组成逻辑上的单一数据库的模式。其典型特征包括:数据库实例部署在不同的物理节点上;节点之间通过网络互连,组成一个数据库集群;数据按照分片规则划分到不同节点存储;支持无限水平扩展数据库存储和计算能力;可在全球范围内扩展和分布数据;实现存储和计算资源的均衡利用;节点故障时,可自动切换和重试;可配置不同的节点复制策略;前端按需请求路由到不同节点;节点扩增时自动重新平衡分布;可实现跨数据中心级别的高可用;支持SQL查询以及事务支持。综上,分布式数据库通过分而治之实现了扩展性、性能及高可用。在本申请中,可采用分布式数据库来存储交易数据。
微服务调用链路,在微服务架构中,一个端到端请求在各个微服务之间的传递和处理路径。其典型特征包括:一个请求端到端调用多个微服务完成;调用路径形成了一个服务调度链条;请求按顺序在微服务之间传递;每个微服务完成一个业务功能;调用关系可以是同步或异步;调用链路依赖服务发现找到服务地址;可通过追踪请求ID来跟踪一个链路;链路上的任一服务故障会造成链路中断;需要作链路容错和服务熔断处理;链路中的服务调用触发进一步的深度调用;链路调用存在时序关系和依赖关系;复杂系统链路关系可能交织在一起。综上,微服务调用链路描述了一个业务请求端到端的处理路径,是理解系统行为的重要模型。
降级处理,当微服务无法正常提供服务时,采取的简化或替代处理措施。其典型特征包括:在服务故障或响应超时时触发降级;根据预设的降级策略,返回简单的响应;常见的降级策略有返回默认值、缓存等;避免因为依赖服务的故障而造成服务雪崩;对核心服务功能进行保护;通过快速失败减少响应延迟;提供基本的服务能力,维持核心可用性;返回的响应中标明已降级;需要与监控和熔断配合使用;可根据故障情况进行部分降级;降级后待依赖服务恢复时再升级;降级策略需针对不同情况制定。综上,降级处理通过应对故障让系统保持基本运行,提高系统的容错能力。在本申请中可采用降级机制保护核心服务。
响应时间指标,用于评估服务性能的一个重要指标,它反映服务处理请求并返回响应结果的时间。典型的特征包括:从客户端发送请求开始计时;到客户端接收到响应结束计时;包括客户端、服务端的处理时间;以毫秒ms为单位计算;服务响应时间越短表示性能越好;可以设置响应时间的阈值要求;平均响应时间反映一段时间内的综合情况;最大响应时间反映个别极端情况;可采样统计获得响应时间分布情况;针对不同请求类型、不同系统分开统计;与请求成功率等指标配合评估;响应时间过长表示系统存在问题。综上,响应时间是一个核心的服务质量指标,需要持续监控和优化,为用户提供更好的服务体验。在本申请中可以使用响应时间评估系统性能。
失败比例指标,用于评估服务质量的一个重要指标,它反映了服务请求失败的比例或概率。典型的特征包括:统计一定时间内服务请求的失败总数;失败请求是指返回错误或异常的请求;将失败数/总请求数得到失败比例;通常以百分比表示失败比例;失败比例越低表示服务质量越好;可设置失败比例的阈值要求;分服务统计失败比例,发现问题服务;与响应时间等指标配合评估;定位导致失败的原因进行优化;区分不同类型请求的失败情况;失败比例过高表示存在系统问题;持续监控失败比例变化趋势。综上,失败比例直接反映系统服务质量好坏,是一个核心的服务质量指标,需要持续监控和优化,确保服务请求成功率。在本申请中可以使用失败比例评估系统可靠性。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其他类似情景。除非从语言环境中显而易见或另作说明,图中相同标号代表相同结构或操作。
应当理解,本说明书中所使用的“系统”“装置”“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”“一个”“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排他性的罗列,方法或者设备也可能包含其他的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
下面结合附图对本说明书实施例提供的方法和系统进行详细说明。
图1是根据本说明书一些实施例所示的一种基于数据归集的API接口调用方法的示例性流程图,如图1所示,一种基于数据归集的API接口调用方法,主要包含:API网关、服务注册中心、消息队列、缓存系统、微服务集群、索引系统、存储系统、监控系统,包含如下技术步骤:
1.采用微服务架构,并构建服务注册中心,实现服务动态发现。
2.构建分布式缓存系统,缓存热点数据,减少存储系统压力。
3.构建索引系统,利用索引加速数据查询。
4.利用消息队列进行异步处理,提高吞吐量。
5.分离读写路径:
读路径:调用方→网关→缓存/索引→返回
写路径:消息队列→存储系统→索引/缓存
6.构建监控系统,对接口指标进行统计分析。
具体的处理流程如下:
(1)API网关负责请求接入,进行安全认证、权限校验等。
(2)检查请求是否命中缓存,命中则直接返回。
(3)未命中缓存,请求路由到后端微服务。微服务通过服务注册中心实现动态服务发现。
(4)微服务查询索引系统,命中则直接返回。
(5)未命中索引,写入消息队列,返回请求ID。
(6)微服务从消息队列中获取请求,查询存储系统,进行计算,将结果写入缓存。
(7)发布计算完成消息,包含请求ID和结果位置。
(8)API网关根据消息从缓存获取结果返回给调用方。
数据流转:
请求流转:调用方→网关→缓存/微服务→消息队列→调用方
数据读取:微服务→消息队列→存储系统→缓存
数据写入:缓存→索引系统、存储系统
其中,API网关,提供统一的API接口,实现请求接入、安全认证、权限校验、流量控制等功能。支持RESTful、RPC等多种协议,降低调用方集成难度。
其中,服务注册与发现,通过服务注册中心实现API微服务的自动注册和发现。调用请求根据服务名动态路由到后端服务集群。
其中,请求路由,将不同类型的请求按业务规则路由到不同的微服务集群,实现请求分流。
其中,缓存,使用Redis等分布式缓存系统,对常用请求的结果进行缓存,降低后端访问压力。
其中,消息队列,将请求异步写入Kafka等消息队列,进行解耦合削峰。
其中,微服务与计算集群,微服务从消息队列中获取请求,查询索引系统和存储系统,进行业务计算,将结果写入缓存。
其中,持久化存储,使用MySQL等关系型数据库或HBase等大数据存储系统进行数据持久化存储。
其中,索引系统,使用易搜等搜索引擎构建索引系统,加速数据查询。
其中,监控系统,收集API调用信息,进行日志分析、性能指标统计,支持系统监控。
综上所述,微服务架构及服务注册中心,实现按业务拆分服务,并支持服务动态缩扩容,提高并发能力。分布式缓存预热热点数据,减少存储读取,提高读速度。实现近端缓存命中。索引利用预构建的查找结构,实现高效查询。基于空间换时间的思想。消息队列进行异步写,实现读写分离,提高读效率。读写路径分离,访问不落盘,减少存储压力,提升读效率。监控系统实现接口性能统计,帮助发现接口热点和瓶颈。微服务提高并发,缓存+索引优化读效率,消息队列及读写分离降低存储压力,监控系统优化持续改进。各步骤相辅相成,共同提升系统数据访问效率。
进一步地,结算节点与存储系统部署在同一微服务集群内,降低网络调用成本。结算节点通过数据库连接池访问存储系统,重用连接,降低消耗。采用基于Docker的微服务水平伸缩,实现结算节点的弹性扩容。存储系统选用分布式数据库或对象存储系统,提高存储吞吐量。这种集群内部署方式,减少了跨机房网络调用开销;连接池重用和自动伸缩提高并发能力;分布式存储提供高吞吐量。总体上显著提升了数据访问和处理效率。
图2是根据本说明书一些实施例所示的安全认证和权限控制的示例性流程图,如图2所示,进行安全认证和权限控制包括如下技术步骤:
S111使用Redis缓存存储用户信息和静态权限策略。
S112按接口敏感程度设定不同粒度的权限控制,高安全级别接口采用更细的权限校验。
S113权限分为静态权限和动态权限,静态权限长期缓存,动态权限实时加载。
S114对敏感权限变更进行日志记录,用于安全审计。
S115采用RBAC基于角色的访问控制,不同角色对应不同权限集。
S116支持列级访问控制,避免敏感数据过度暴露。
S117构建用户画像,根据行为智能授权。
S118 API网关统一处理微服务认证授权。
其中,Redis缓存降低用户认证、静态权限校验的响应时间,接口权限粒度控制,避免不必要的权限校验,提高效率,静态和动态权限分离,降低动态权限频繁访问存储系统带来的额外性能开销,权限变更日志用于事后审计,不影响在线效率,RBAC降低权限数量级,减少校验复杂度,列级访问控制只校验必要权限,避免不必要访问,用户画像授权降低默认策略授权粒度,统一网关校验简化调用方集成。
综上所述,各步骤相辅相成,共同缓存、粒度控制、角色权限、列级访问等技术手段,降低权限校验复杂度,只校验必要权限,避免不必要访问,从而提高了权限校验的效率
图3是根据本说明书一些实施例所示的微服务实现动态服务发现的示例性流程图,如图3所示,微服务实现动态服务发现,微服务通过服务注册中心实现动态服务发现包括:
S131微服务注册,微服务启动时向注册中心注册自身信息。
S132服务发现,调用方从注册中心获取服务提供方的网络地址。
S133远程调用,调用方使用提供方地址调用服务接口。
S134负载均衡,在调用方和提供方之间设置负载均衡器。
S135结果缓存,设置缓存系统,缓存服务查询结果。
S136缓存访问优先,请求先查询缓存系统,命中则直接返回结果。
具体的如下所述:1.微服务启动时向注册中心注册自己的网络地址;服务调用方从注册中心获取服务提供方地址;调用方使用提供方地址调用服务接口;注册中心实时监控微服务状态,删除故障实例信息;注册中心使用缓存加速服务地址分发;心跳检测机制探测服务状态;在调用方和提供方之间设置负载均衡器;设置索引系统,缓存服务查询结果;请求先访问索引系统,命中则直接返回;未命中则请求路由到后端服务;定期更新索引。
其中,注册中心能够实现动态服务发现,调用方从注册中心获取地址,避免硬编码地址,调用方直接通过获取的地址调用服务,降低寻址时间,注册中心删除故障实例,避免调用失败,缓存加速服务地址获取,降低注册中心负载,心跳检测实现实时探测,保证获取的服务地址的可用性,负载均衡实现后端服务端流量分担,提高并发能力,索引系统缓存结果,避免重复计算,减少回源,索引命中直接返回,降低平均响应时间,索引未命中走标准流程,保证正确性,定期更新索引,使索引与源数据保持同步。
其中,注册中心+缓存实现高效的服务发现和请求路由;负载均衡实现服务端的负载分担;索引系统通过缓存热点数据提升查询效率;心跳检测保证服务地址信息的实时性。
综上所述,注册中心和索引系统使用缓存机制,心跳检测、负载均衡保证可用性和并发,相互协同,缓存,并发,隔离等机制结合实现地空间换时间,业务拆分,避免重复计算,共同优化了微服务架构的查询效率。
图4是根据本说明书一些实施例所示的限流和熔断的示例性流程图,如图4所示,限流和熔断包括:
S161设置限流模块,在调用链路上设置限流模块。
S162定义限流阈值,根据服务能力定义限流的阈值。
S163限流处理,当请求达到阈值时,进行限流。
S164限流方式,限流方式包括拒绝、排队或降级。
S165设置熔断器,设置熔断模块,实时监控调用。
S166熔断与恢复,调用异常比率超阈值时,触发熔断,待服务恢复再关闭熔断。
具体如下所述:1.在调用链路上设置限流模块,对流量进行限速;限流模块根据服务能力设置限流阈值;请求达到阈值时,限流模块进行限流;限流方式包括拒绝请求、排队或降级;设置熔断模块,实时监控服务调用状态。6.调用异常比例超过设定阈值时,触发熔断;熔断期间所有请求走降级处理;检测服务恢复则关闭熔断,恢复服务调用。
其中,限流模块避免过载;熔断模块检测故障并快速失败切换;降级处理保底响应。限流保护上游,熔断隔离下游,共同保证系统稳定。
具体地,限流阈值设定,根据服务能力如QPS、并发数等指标设定阈值,评估当前服务压力,预留容量,可基于时间窗口如1秒、1分钟等限速,示例:设置1秒内请求数不超过100;熔断阈值设定,根据服务故障比例/请求错误率设定阈值,一般设置在20%—50%之间,也可以基于时间窗口如1分钟错误率达到30%则触发,示例:设置1分钟内异常请求占比超过30%则触发熔断;动态调整阈值,根据实时流量和服务状况动态调整阈值,避免硬编码阈值导致不适应流量变化。
具体地,限流模块对流量进行限速,避免过载。根据服务能力设定限流阈值,避免过度限流影响效率。达到阈值后限流,防止过载抖动。限流方式避免过载,同时保证基本服务水平。熔断模块实时监控服务状态,快速发现故障。设定故障比例阈值,控制熔断灵敏度。熔断后快速失败切换,避免级联故障。检测恢复后关闭熔断,快速恢复服务。
综上所述,利用了并发控制、故障隔离、快速失败切换等方式提升稳定性和容错性。限流和熔断相互配合,使用并发限制,故障快速检测与隔离等机制,避免了过载造成的雪崩效应,保证了服务的高效稳定运行,提高了系统的鲁棒性,增强了容错能力,降低了失败率。
图5是根据本说明书的一些实施例所示的一种基于数据归集的API接口调用系统的示例性模块图,如图5所示,一种基于数据归集的API接口调用系统200包括:API网关模块210、安全认证鉴权模块220、缓存模块230、服务注册中心模块240、负载均衡模块250、索引系统模块260、消息队列模块270、结算节点模块280和限流与熔断模块290。
其中,API网关模块210作为入口,可以进行请求路由,避免直接访问服务造成不必要的负载。安全认证鉴权模块220确保只有通过验证的请求可以进入系统,提高安全性。缓存模块230可大大减少重复请求到达服务端,提高响应速度和系统吞吐量。服务注册中心协调服务地址,负载均衡模块250根据实时状态分流请求,防止单点压力过大。索引系统可快速响应预定义的查询,降低结算节点压力。消息队列将未命中索引的请求异步转发给结算节点,提高吞吐量。结算节点接到请求后计算结果,写入缓存作为快速响应。限流与熔断模块290避免突发流量压垮系统,在系统不稳定时暂停服务调用。持久化存储最终保存结果,防止数据丢失。
具体地,API网关模块210:接收请求,请求路由,与客户端交互的统一入口。安全认证鉴权模块220:处理身份验证、授权校验等安全相关事务。缓存模块230:提高接口响应速度,避免重复计算。服务注册中心模块240:实现服务注册与发现,维护服务实例信息。负载均衡模块250:根据服务注册中心的信息实现请求的负载分发。索引系统模块260:提供快速查询,避免全量计算。消息队列模块270:实现异步解耦,缓冲请求。结算节点模块280:具体业务逻辑的处理单元。限流与熔断模块290:对服务进行流量控制,避免过载,服务监控和故障隔离。
综上所述,通过各模块的流量控制、缓存、异步处理、服务治理等机制,可以大幅优化数据访问性能,提高系统稳定性和吞吐量。
以上示意性地对本发明创造及其实施方式进行了描述,该描述没有限制性,在不背离本发明的精神或者基本特征的情况下,能够以其他的具体形式实现本发明。附图中所示的也只是本发明创造的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性地设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (7)

1.一种基于数据归集的API接口调用方法,包括:
接收用户发起的API接口调用请求;
检查请求参数,进行安全认证和权限控制;
检查请求是否命中本地缓存,如果命中,直接返回缓存结果;
如果未命中缓存,则根据请求类型将请求路由到对应的微服务集群;微服务通过服务注册中心实现动态服务发现;
微服务首选查询索引系统,如果命中索引直接返回索引结果;
如果索引未命中,则将请求写入消息队列;并返回请求ID给调用方;
结算节点从消息队列消费请求消息,查询存储系统,进行计算,并将计算结果写入缓存系统;
计算完成后,发布包含请求ID和结果位置的完成消息;
API网关根据完成消息,从缓存系统获取结果,返回给用户;
将计算结果存入持久化存储系统,供后续请求直接查询;
检查请求参数,进行安全认证和权限控制包括:
使用Redis内存缓存系统存储用户认证信息和静态权限控制策略;
根据接口的敏感程度和安全级别,设置不同的权限校验粒度;
将权限分为静态权限和动态权限,静态权限长期存储在缓存中,动态权限实时从数据库或外部系统加载;
对敏感权限的修改进行日志记录;
使用RBAC基于角色的API访问控制;
支持细粒度的列级访问控制,限制敏感字段的访问;
构建用户画像,根据用户行为模型智能分析并动态授予相应的默认权限;
API网关统一处理所有微服务的认证授权;
其中,所述用户认证信息包含:用户标识、密钥和权限列表;
微服务通过服务注册中心实现动态服务发现包括:
每个微服务向服务注册中心注册自身的网络地址信息;
服务调用方从服务注册中心获取服务提供方的网络地址信息;
服务调用方使用所获取的网络地址信息调用服务提供方的接口;
服务注册中心实时监控每个微服务实例的状态,将故障实例的网络地址信息从注册中心删除;
服务注册中心将微服务的网络地址信息缓存在本地或分布式缓存中;
服务注册中心采用心跳检测机制实时探测微服务状态;
在服务调用方与提供方之间设置负载均衡器。
2.根据权利要求1所述的API接口调用方法,其特征在于:
所述服务注册中心包括注册数据库,用于存储微服务的网络地址信息;
所述注册数据库采用主从高可用结构,主数据库处理写操作,从数据库作为备份;
负载均衡器从服务注册中心获取微服务网络地址信息并缓存;
接收到服务调用请求后,负载均衡器根据缓存的服务提供方地址选择服务实例并实现请求分流;
负载均衡器定期从服务注册中心获取并更新缓存的服务提供方网络地址信息;
负载均衡器采用的缓存更新策略为定时更新或数据变化更新。
3.根据权利要求2所述的API接口调用方法,其特征在于:
微服务首选查询索引系统,如果命中索引直接返回索引结果包括:
设置索引系统,用于存储微服务的查询索引信息;
接收到微服务查询请求时,先访问索引系统,查询是否存在对应的索引结果;
如果索引系统中存在对应的索引结果,直接返回索引查询结果,完成查询;
如果索引系统中不存在对应的索引结果,再将查询请求路由到负载均衡器,由负载均衡器根据缓存的服务提供方地址实现请求分流和查询;
将微服务的查询结果生成索引,存储到索引系统中;
定期或根据定量策略对索引系统中的索引信息进行更新或失效处理;
其中,所述索引信息为查询请求参数、查询结果和结果缓存超时时间。
4.根据权利要求3所述的API接口调用方法,其特征在于:
索引系统包括:
缓存索引的缓存系统;
用于索引查询的索引服务;
用于索引生成和存储的索引建设服务;
其中,所述缓存系统采用分布式缓存架构。
5.根据权利要求1所述的API接口调用方法,其特征在于:
结算节点与存储系统部署在微服务集群内;
结算节点与存储系统连接方式为数据库连接池。
6.根据权利要求5所述的API接口调用方法,其特征在于:
结算节点水平扩展方式为基于Docker容器的实时扩容;
存储系统为分布式数据库或对象存储系统。
7.根据权利要求1所述的API接口调用方法,其特征在于:
API接口调用方法还包括:
在微服务调用链路上设置限流模块,对服务调用请求进行限流;
限流模块根据服务提供能力设定限流阈值,当请求达到阈值时进行限流;限流方式为拒绝请求、排队等待或降级处理;
在微服务调用链路上设置熔断模块,对服务调用状态进行监控;
当监控到服务调用异常比例超过设定阈值时,触发熔断开关;
熔断开关触发期间,所有请求不再调用服务,直接返回或调整到降级处理;检测服务恢复正常后,关闭熔断开关,恢复服务调用;
其中,所述降级处理为返回默认数据、读取缓存或失败重试处理;
对服务调用状态进行监控为响应时间指标或失败比例指标。
CN202311132615.5A 2023-09-05 2023-09-05 一种基于数据归集的api接口调用方法及系统 Active CN117278640B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311132615.5A CN117278640B (zh) 2023-09-05 2023-09-05 一种基于数据归集的api接口调用方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311132615.5A CN117278640B (zh) 2023-09-05 2023-09-05 一种基于数据归集的api接口调用方法及系统

Publications (2)

Publication Number Publication Date
CN117278640A CN117278640A (zh) 2023-12-22
CN117278640B true CN117278640B (zh) 2024-05-17

Family

ID=89220536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311132615.5A Active CN117278640B (zh) 2023-09-05 2023-09-05 一种基于数据归集的api接口调用方法及系统

Country Status (1)

Country Link
CN (1) CN117278640B (zh)

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107612955A (zh) * 2016-07-12 2018-01-19 深圳市远行科技股份有限公司 微服务提供方法、装置及系统
CN107911430A (zh) * 2017-11-06 2018-04-13 上海电机学院 一种微服务基础设施装置
CN110661815A (zh) * 2019-10-22 2020-01-07 中国林业科学研究院热带林业研究所 基于频率限制微服务的请求处理方法、装置、系统及介质
CN111181727A (zh) * 2019-12-16 2020-05-19 北京航天智造科技发展有限公司 一种基于微服务的开放api全生命周期管理方法
CN111416837A (zh) * 2020-02-20 2020-07-14 华迪计算机集团有限公司 政务系统api接口访问网关、方法、电子设备及存储介质
WO2020237797A1 (zh) * 2019-05-31 2020-12-03 烽火通信科技股份有限公司 一种微服务框架下动态配置管理方法及系统
CN112788031A (zh) * 2021-01-11 2021-05-11 百果园技术(新加坡)有限公司 基于Envoy架构的微服务接口认证系统、方法及装置
US11272035B1 (en) * 2021-01-29 2022-03-08 Paypal, Inc. API service gateway for third-party services
CN114253707A (zh) * 2021-11-04 2022-03-29 华能信息技术有限公司 一种基于api网关的微服务请求方法
CN114626808A (zh) * 2022-03-04 2022-06-14 南斗六星系统集成有限公司 一种基于微服务架构的车联网大数据分析系统
WO2022267179A1 (zh) * 2021-06-21 2022-12-29 深圳壹账通智能科技有限公司 动态限流熔断配置方法、装置、设备及存储介质
US11604684B1 (en) * 2017-08-02 2023-03-14 Styra, Inc. Processing API calls by authenticating and authorizing API calls
CN115809103A (zh) * 2022-12-08 2023-03-17 江西省通信产业服务有限公司宇创网络科技开发分公司 一种异构系统数据交换平台api接口交换方法
CN116016667A (zh) * 2023-01-04 2023-04-25 上海道客网络科技有限公司 一种云原生平台多种类型注册中心统一治理方法和系统
CN116074337A (zh) * 2023-04-06 2023-05-05 徐工汉云技术股份有限公司 基于api网关的远程过程调用处理方法和装置
CN116186139A (zh) * 2023-01-17 2023-05-30 北京京仪仪器仪表研究总院有限公司 一种基于微服务架构的仪器仪表产品全生命周期信息感知平台
CN116232804A (zh) * 2023-01-06 2023-06-06 南方电网数字电网研究院有限公司 基于微服务架构的api网关
CN116455613A (zh) * 2023-03-24 2023-07-18 鞍钢集团信息产业有限公司 一种基于OpenResty跨语言异构微服务统一鉴权优化方法

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107612955A (zh) * 2016-07-12 2018-01-19 深圳市远行科技股份有限公司 微服务提供方法、装置及系统
US11604684B1 (en) * 2017-08-02 2023-03-14 Styra, Inc. Processing API calls by authenticating and authorizing API calls
CN107911430A (zh) * 2017-11-06 2018-04-13 上海电机学院 一种微服务基础设施装置
WO2020237797A1 (zh) * 2019-05-31 2020-12-03 烽火通信科技股份有限公司 一种微服务框架下动态配置管理方法及系统
CN110661815A (zh) * 2019-10-22 2020-01-07 中国林业科学研究院热带林业研究所 基于频率限制微服务的请求处理方法、装置、系统及介质
CN111181727A (zh) * 2019-12-16 2020-05-19 北京航天智造科技发展有限公司 一种基于微服务的开放api全生命周期管理方法
CN111416837A (zh) * 2020-02-20 2020-07-14 华迪计算机集团有限公司 政务系统api接口访问网关、方法、电子设备及存储介质
CN112788031A (zh) * 2021-01-11 2021-05-11 百果园技术(新加坡)有限公司 基于Envoy架构的微服务接口认证系统、方法及装置
US11272035B1 (en) * 2021-01-29 2022-03-08 Paypal, Inc. API service gateway for third-party services
WO2022267179A1 (zh) * 2021-06-21 2022-12-29 深圳壹账通智能科技有限公司 动态限流熔断配置方法、装置、设备及存储介质
CN114253707A (zh) * 2021-11-04 2022-03-29 华能信息技术有限公司 一种基于api网关的微服务请求方法
CN114626808A (zh) * 2022-03-04 2022-06-14 南斗六星系统集成有限公司 一种基于微服务架构的车联网大数据分析系统
CN115809103A (zh) * 2022-12-08 2023-03-17 江西省通信产业服务有限公司宇创网络科技开发分公司 一种异构系统数据交换平台api接口交换方法
CN116016667A (zh) * 2023-01-04 2023-04-25 上海道客网络科技有限公司 一种云原生平台多种类型注册中心统一治理方法和系统
CN116232804A (zh) * 2023-01-06 2023-06-06 南方电网数字电网研究院有限公司 基于微服务架构的api网关
CN116186139A (zh) * 2023-01-17 2023-05-30 北京京仪仪器仪表研究总院有限公司 一种基于微服务架构的仪器仪表产品全生命周期信息感知平台
CN116455613A (zh) * 2023-03-24 2023-07-18 鞍钢集团信息产业有限公司 一种基于OpenResty跨语言异构微服务统一鉴权优化方法
CN116074337A (zh) * 2023-04-06 2023-05-05 徐工汉云技术股份有限公司 基于api网关的远程过程调用处理方法和装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Building a Fintech Ecosystem: Design and Development of a Fintech API Gateway";Ersin Ünsal,et al;《IEEE》;20201231;全文 *
"Toward an API-Driven Infinite Cyber-Screen for Custom Real-Time Display of Big Data Streams";Mirco Soderi,et al;《IEEE》;20221231;全文 *
基于OpenResty平台的API网关系统的设计与实现;温馨;樊婧雯;王富强;;信息化研究;20200620(第03期);全文 *
基于微服务架构的开放平台消息系统的设计与实现;谢伟;《中国优秀硕士学位论文全文数据库》;20190531;全文 *
基于微服务架构的统一应用开发平台;李春阳;刘迪;崔蔚;李晓珍;李春岐;;计算机系统应用;20170415(第04期);全文 *

Also Published As

Publication number Publication date
CN117278640A (zh) 2023-12-22

Similar Documents

Publication Publication Date Title
Adya et al. Slicer:{Auto-Sharding} for datacenter applications
CN114787781B (zh) 用于启用高可用性受管理故障转移服务的系统和方法
CN113169952B (zh) 一种基于区块链技术的容器云管理系统
AU2014346369B2 (en) Managed service for acquisition, storage and consumption of large-scale data streams
KR101315330B1 (ko) 대용량 데이터베이스와 인터페이스하기 위한 다 계층소프트웨어 시스템에서 캐쉬 콘텐츠의 일관성을 유지하는시스템 및 방법
US9413678B1 (en) System and method for controlling access to web services resources
US8930409B2 (en) System and method for supporting named operations in a distributed data grid
US11683349B2 (en) Dynamic security policy management
JP7270755B2 (ja) 分散システムでのメタデータルーティング
Fagg et al. Scalable networked information processing environment (SNIPE)
WO2012145963A1 (zh) 数据管理系统及方法
CN109347909A (zh) Proxzone服务平台的工作方法
US20230020330A1 (en) Systems and methods for scalable database hosting data of multiple database tenants
US11953997B2 (en) Systems and methods for cross-regional back up of distributed databases on a cloud service
CN112714018B (zh) 基于网关的ElasticSearch搜索服务方法、系统、介质及终端
CN106796537B (zh) 计算集群中的分布式组件
US11057479B1 (en) Contextual routing configuration and service naming for multi-cluster service mesh
CN113127343A (zh) 一种基于微服务架构的电网代码测试分析系统
US7694012B1 (en) System and method for routing data
Zarei et al. Past, present and future of Hadoop: A survey
CN117278640B (zh) 一种基于数据归集的api接口调用方法及系统
CN117131493A (zh) 权限管理系统构建方法、装置、设备及存储介质
CN115757552B (zh) 基于分布式微服务的银行历史数据管理系统
US8763015B1 (en) Efficient multi-node system for providing event information to event handling components
JP2020119207A (ja) データベース管理サービス提供システム

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