首页 > 其他分享 >springcloud中sentient整合openfeign组件

springcloud中sentient整合openfeign组件

时间:2024-09-24 15:48:35浏览次数:7  
标签:openfeign sentient springcloud reduce2 spring sentinel public cloud

openfeign作为微服务各个模块之间调用的组件,如果服务提供方出现异常,会将错误返回给服务消费方,消费方可以通过sentinel的服务降级方法,对如果调用异常的情况进行处理

以下介绍下具体做法:

一、服务消费方必须整合openfeign,方法可以参考:https://www.cnblogs.com/qwg-/p/18007449

pom.xml中必须添加以下依赖:

   <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

二、在application.yml文件中添加



server:
port: 8090
spring:
  application:
    name: order-sentinel-openfeign

  cloud:
    sentinel:
      transport:
        dashboard: 127.0.0.1:8080
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        username: nacos
        password: nacos
        namespace: public
feign:
  sentinel:
    enabled: true  #尤其是这个

三、代码

StockFeignService为feign接口

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient(name = "stock-service",path = "/stock",fallback = StockFeignFabackImpl.class)  //name为服务名称,path为接口路径
public interface StockFeignService {

    @GetMapping("/reduce2")
    String reduce2();
}

StockFeignFabackImpl为feign接口的实现类,该方法就是降级后执行的方法

@Component   // 注意需要添加到spring容器中
public class StockFeignFabackImpl implements StockFeignService {
    @Override
    public String reduce2() {
        return "被降级";
    }
}

被调用方(服务提供者)

@RestController
@RequestMapping("/stock")
public class StockController {

    @GetMapping("/reduce2")
    public String reduce2(){
        int a = 1/0;   //故意造异常
        System.out.println("扣减库存");
        return "扣减库存 " + port;
    }

controller测试demo

@RestController
@RequestMapping("/order")
public class OrderController {

    @Resource
    StockFeignService stockFeignService;


    @GetMapping("/openfeign")
    public String openfeign(){
        String msg = stockFeignService.reduce2();
        return "hello " + msg;
    }

测试请求

 以上内容纯学习使用!

 

标签:openfeign,sentient,springcloud,reduce2,spring,sentinel,public,cloud
From: https://www.cnblogs.com/qwg-/p/18429277

相关文章

  • springcloud中流控和熔断
    接下去简单介绍下如何利用sentinel的dashboard进行流控和熔断。一、流控(服务提供方设置)1、在簇点链路找到对应资源名,点击流控,选择QPS或者线程数,单位是秒,设置单机阈值流控:QPS:每秒访问数;线程数:也就是时间段内只有对应的线程数处理,超过的线程请求会等待2、流控模式:直接、关联......
  • springcloud整合sentinel
    此处只做个简单的springcloud中添加sentinel的demo1、下载sentinel的jar,访问网址:https://github.com/alibaba/Sentinel/releases 2、找到本地jar文件夹,使用cmd或者终端中打开,执行java-jar sentinel-dashboard-1.8.0.jar 启动完成 访问可视化页面,默认账号密码都是sent......
  • 滚雪球学SpringCloud[9.2讲]:CI/CD与自动化部署详解
    全文目录:前言1.持续集成与持续交付的基本概念1.1持续集成(CI)1.1.1持续集成的主要优势1.2持续交付(CD)1.2.1持续交付的主要特点1.3CI与CD的区别与联系2.使用Jenkins与GitLab实现CI/CD管道2.1使用Jenkins实现CI/CD2.1.1Jenkins简介2.1.2Jenkins的安装与配置2.1.3......
  • 滚雪球学SpringCloud[9.1讲]:Docker与容器化详解
    全文目录:前言9.1Docker与容器化Docker的基本概念与SpringBoot应用的容器化1.Docker的核心概念2.将SpringBoot应用容器化DockerCompose与微服务编排1.DockerCompose的核心概念2.使用DockerCompose编排微服务使用Kubernetes部署SpringCloud应用1.Kubernetes......
  • SpringCloud(九)配置中心和消息总线
    ##SpringCloudBusSpringcloudbus通过轻量消息代理连接各个分布的节点。这会用在广播状态的变化(例如配置变化)或者其他的消息指令。Springbus的一个核心思想是通过分布式的启动器对springboot应用进行扩展,也可以用来建立一个多个应用之间的通信频道。目前唯一实现的方式......
  • Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十九(用户中
    (4)创建mapper路径(5)编写配置文件server:port:8088spring:application:name:user-servicedatasource:url:jdbc:mysql://127.0.0.1:3306/yun6username:rootpassword:rootdriver-class-name:com.mysql.jdbc.Drivereureka:client:service-url:defaultZone......
  • springcloud组件openfeign超时时间设置
    openfeign超时时间设置有两种方式1、通过配置类;2、通过配置文件1、使用配置类代码如下:@ConfigurationpublicclassFeignConfig{@BeanpublicRequest.Optionsoptions(){//第一个参数是连接超时时间,第二个参数是处理超时时间returnnewReque......
  • 关于springcloud中openfeign中服务调用日志输出
    在使用openfeign进行服务调用的时候,我们可以通过一些配置,获取到服务调用的日志输出,可以从消费端看到日志有两种方法:一、使用配置类;二、使用配置文件配置日志输出级别有四种:NONE:不输出(默认)BASIC:只输出请求方式、url、请求成功与否HEADERS:输出请求头的部分信息等FULL:BASIC+HEA......
  • springcloud的ribbon懒加载负载均衡策略
    ribbon的默认是第一次调用的时候,才会去初始化负载均衡策略,那这个可能的后果就是服务第一次请求的是,因为需要初始化,有可能会慢一点那可以通过配置项目启动的时候,就进行初始化负载均衡策略,减少第一次请求时候的时间只需要再消费端的模块中添加如下配置:ribbon:eager-load:......
  • springcloud负载均衡组件ribbon使用
    一、微服务负载均衡ribbon策略如下:1、线性轮询策略:RoundRibbonRule 2、重试策略:RetryRule3、加权响应时间策略:WeightedResponseTimeRule4、随机策略:RandomRule5、最空闲策略:BestAvailableRule6、区域感知轮询策略:ZoneAvoidanceRule(默认)每个策略对应什么意思,基本也就是字......