java调用微服务传文件_微服务之间相互调用问题

RestTemplate :是一个访问Restful风格的第三方服务的 网络请求框架

使用 :  1.使用配置类配置一个RestTemplate的bean

2.在要使用的服务中自动注入

Nacos:一个微服务的服务注册中心(nacos关闭后服务的链接不会失效)

Ribbon:一个springcloud组件,用来实现服务调用的负载均衡

使用:在restTemplate 的bean上加上@LoadTemplate注解就能使用默认的均衡算法 来均衡

ribbon还提供了重试机制

几个参数:建立连接的超时时间(connectTimeout),处理请求的超时时间,同一实例的最大重试次数,所有其他实例(不包括第一次链接)的最大重试次数

OpenFeign: 一个伪http客户端,集成了 ribbon和resttemplate

feign 中ribbon的关键属性

OkToRetryOnAllOperations

:true  //所有请求都会重试 (不安全,可能会想数据库插入两个相同记录)

:false //只有get类型,也就是查询才会出发重试机制(推荐)

feign参数传递:

get:服务调用方接口中的feign方法    传递对象的参数   前面要加@SpringQueryMap注解

post:服务提供方 的controller中参数要加  @RequestBody

服务雪崩:下游的服务不可用导致上游的不可用

解决方案:隔离 超时 限流 熔断 降级

sentinel  : 一套服务容错的综合性解决方案

sentinel配置限流  qps ,该controller  1秒钟内可以被访问的次数

sentinel配置熔断降级(以后请求不再执行) RT 和时间窗口  该controller执行平均时间不能超过  如(RT) 100ms  ,否则在 30s(时间窗口)内不再处理请求,

而是抛出异常,30s后恢复

限流,降级等会导致被保护的controller抛出FlowException ,DegradeException等异常

这类异常无法被普通的异常切面捕获到,需要一个实现UrlBlockHandler的类来处理该类型异常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值