c/c++语言开发共享Sentinel整合Feign流程详细讲解

修改84模块84消费者调用提供者9003feign组件一般是消费侧重点依赖 <!–springcloud openfeign –> <dependency>

修改84模块

84消费者调用提供者9003

feign组件一般是消费侧

重点依赖

 <!--springcloud openfeign -->          <dependency>              <groupid>org.springframework.cloud</groupid>              <artifactid>spring-cloud-starter-openfeign</artifactid>          </dependency>

激活sentinel对feign的支持

spring:
  application:
    name: nacos-order-consumer
  cloud:
    nacos:
      discovery:
        #nacos服务注册中心地址
        server-addr: localhost:8848
    sentinel:
      transport:
        #配置sentinel dashboard地址
        dashboard: localhost:8080
        #默认8719端口,假如被占用会自动从8719开始依次+1扫描,直至找到未被占用的端口
        port: 8719
management:
  endpoints:
    web:
      exposure:
        include: '*'
# 激活sentinel对feign的支持
feign:
  sentinel:
    enabled: true  

# 激活sentinel对feign的支持

feign:

sentinel:

enabled: true

增加业务类接口

@feignclient(value = "nacos-payment-provider",fallback = paymentfallbackservice.class)//调用中关闭9003服务提供者  public interface paymentservice  {      @getmapping(value = "/paymentsql/{id}")      public commonresult<payment> paymentsql(@pathvariable("id") long id);  }

@feignclient(value = "nacos-payment-provider",fallback =paymentfallbackservice.class)//调用中关闭9003服务提供者

@component  public class paymentfallbackservice implements paymentservice  {      @override      public commonresult<payment> paymentsql(long id)      {          return new commonresult<>(444,"服务降级返回,没有该流水信息",new payment(id, "errorserial......"));      }  }

调用失败的时候,就会调用重写的方法

修改控制类

 //==================openfeign      @resource      private paymentservice paymentservice;      @getmapping(value = "/consumer/openfeign/{id}")      public commonresult<payment> paymentsql(@pathvariable("id") long id)      {          if(id == 4)          {              throw new runtimeexception("没有该id");          }          return paymentservice.paymentsql(id);      }

添加@enablefeignclients启动feign的功能

@enablediscoveryclient  @springbootapplication  @enablefeignclients  public class ordernacosmain84  {      public static void main(string[] args) {              springapplication.run(ordernacosmain84.class, args);      }  }

测试

启动9003 9004 84 端口

访问:https://localhost:84/consumer/paymentsql/1

测试84调用9003,此时故意关闭9003微服务提供者,看84消费侧自动降级,不会被耗死

熔断框架比较

Sentinel整合Feign流程详细讲解

业务降级,是指牺牲非核心的业务功能,保证核心功能的稳定运行。简单来说,要实现优雅的业务降级,需要将功能实现拆分到相对独立的不同代码单元,分优先级进行隔离。在后台通过开关控制,降级部分非主流程的业务功能,减轻系统依赖和性能损耗,从而提升集群的整体吞吐率。

降级的重点是:业务之间有优先级之分。降级的典型应用是:电商活动期间关闭非核心服务,保证核心买买买业务的正常运行。

Sentinel整合Feign流程详细讲解

到此这篇关于sentinel整合feign流程详细讲解的文章就介绍到这了,更多相关sentinel整合feign内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

需要了解更多c/c++开发分享Sentinel整合Feign流程详细讲解,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/1236845.html

(0)
上一篇 2022年9月7日
下一篇 2022年9月7日

精彩推荐