Spring Cloud Feign 的远程服务调用

本文介绍了如何在Spring Boot项目中利用Spring Cloud Feign进行远程服务调用。项目依赖包括Spring Cloud Consul、Spring Cloud Gateway、Hystrix和OpenFeign。文章详细阐述了创建项目的过程,包括配置信息、启动类、控制器类、接口类和服务熔断类的设置。通过Feign客户端,项目提供了一个接口,当远程调用服务正常时返回响应,异常时则通过服务熔断类返回默认信息。
摘要由CSDN通过智能技术生成

说明

简介

  • 首先,这是一个标准的 Spring Boot 项目
  • 其次,它实现基于 Spring Cloud Consul的服务注册功能
  • 最后,它支持 Spring Cloud Feign远程调用
    • 如果Feign 客户端远程调用异常,则返回 fallback 信息(通过 Spring Cloud Netflix Hystrix实现)
  • 当前实现的功能:
    • 提供一个接口,接收 uri 为 /api/user/{id}的 HTTP GET 请求
    • 这个接口通过 Feign 客户端远程调用 awesome-user-server服务中匹配 /api/user/{id}的接口

创建项目

  • 博主使用的开发工具是 Intellij IDEA,创建的项目结构如下所示:
    • 在这里插入图片描述
    • 主要包含六部分内容(其他部分请参考 Spring Cloud Gateway 网关)
      • 依赖信息:pom.xml
      • 配置信息:application.yml
      • 启动类: AwesomeUserApiApplication.java
      • 控制器类:UserController.java
      • 接口类:UserService.java
      • 接口对应的服务熔断类:UserServiceFallback.java

依赖

  • 主要引入依赖:
    • spring-cloud-starter-consul-all:注册服务到 Consul
    • spring-cloud-starter-gateway :支持网关服务。(用于实现网关功能直接转发某些请求,和当前博客主要介绍的内容关系不大,但由于本博客属于 Spring Cloud 微服务化(精简完整版)的一部分,由于整体设计的原因,所以这里引入这个依赖)
    • spring-cloud-starter-netflix-hystrix :支持熔断服务
    • spring-cloud-starter-openfeign:支持 Feign 客户端远程调用
  • 完整 pom.xml
  • <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>andy.wanna.sing</groupId>
      <artifactId>awesome-user-api</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>jar</packaging>
    
      <name>awesome-user-api</name>
      <url>http://www.example.com</url>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <java.version>1.8</java.version>
      </properties>
    
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
      </parent>
    
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.springframework.cloud</
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值