分布式微服务 - 3.服务调用 - 1.概念

分布式微服务 - 3.服务调用 - 1.概念

项目示例:

  • 无

内容提要:

  • 服务调用、负载均衡、框架
  • 降级熔断限流、框架
  • 网关、框架

文档:

  • 无

服务调用

服务调用时,需要先获取服务消费者的ip和端口号等信息。因此,一般服务消费者进行服务调用前,需要有服务提供者先去服务注册中心进行服务注册,然后服务消费者再结合服务注册中心获取服务列表,进行服务调用。

负载均衡

服务提供者是一个集群时,服务调用时需要从集群中选择一个节点使用服务,负载均衡策略决定如何从集群中选择一个节点。

负载均衡分为服务端负载均衡和客户端负载均衡。服务端负载均衡是在集群前面加一层负载均衡工具(如Nginx),所有到集群的请求都统一向该负载均衡工具请求,然后由负载均衡工具根据策略转发到集群中的一个节点。客户端负载均衡是由请求端持有集群中所有节点的信息,然后根据本身的负载均衡策略选择一个节点发送请求。

服务调用框架

openfeign

降级熔断限流

分布式系统随着开发会逐渐变得庞大和复杂,用户的一次请求可能会触发一条复杂且较长的服务调用链条,一旦链条上某个微服务节点出现超时、异常等问题时,会导致整体服务失败、故障蔓延、长时间等待、无效占用资源等状况,降低系统弹性。

因此,针对一个服务提供者进行服务调用时,需要考虑服务提供者超时或故障情况下,能否返回一个备用方案来避免故障扩散(即服务降级),而且如何避免后续请求继续发送到该故障的微服务上(即服务熔断)。除此之外,还要考虑在访问流量骤增时,限制流量以防服务器瞬间崩溃。

服务降级熔断的实现一般是在服务提供者端,减少若干服务消费者端重复实现上的冗余,且能在服务提供者端进行统一配置。

降级熔断框架

Sentinel

网关

应用系统服务端(后端)被拆分成若干微服务后,每个微服务都有自己的IP地址、端口号、路径,渠道端应用访问API时没有统一的地址信息,因此需要在所有微服务(也可以包括其他资源)之前添加一个工具,所有外部请求统一要经过这个工具(系统对外唯一的入口),这也就是网关的路由功能。

除了路由功能外,还可以借助网关实现认证授权、参数校验、请求转换、监控等过滤器功能。

网关框架

Spring Cloud Gateway

相关推荐
今年下半年2 分钟前
【低成本埋点统计】Spring Boot+vue2前后端分离项目统计系统访问、使用、登录次数
spring boot·后端·状态模式
codigger13 分钟前
Java 26 深度解析:一次“性能兑现 + 契约收紧”的版本
java·后端·编程·编程语言
盖世英雄酱5813619 分钟前
格式化成日期为什么提前一天呢,同样的时间点还是非必现???
java·后端
威哥爱编程20 分钟前
【AI全栈12-05】Spring Boot 用 Tool Calling 让 AI 查实时订单与库存
java·spring boot·后端
用户2986985301422 分钟前
Python 实战:将 HTML 内容保存为图像文件
后端·python·html
挖掘狂人25 分钟前
Java 26 深度解析:一次“性能兑现 + 契约收紧”的版本
javascript·后端·性能优化
威哥爱编程27 分钟前
【AI全栈12-06】Spring Boot 用 RAG 搭企业私有知识库问答
java·spring boot·后端
小蒜学长30 分钟前
基于微信小程序的医院医疗废弃物追溯管理系统(代码+数据库+LW)
java·spring boot·后端·微信小程序·医疗废弃物
掘金者阿豪32 分钟前
SQL 编辑器技术实践:从写 SQL 到数据库治理,聊聊电科金仓 KSQL Developer 的实际价值
后端
威哥爱编程38 分钟前
【AI全栈12-04】Spring Boot 用结构化输出自动解析简历:让模型按你的 POJO 输出
java·spring boot·后端