iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringCloud基于Feign的可编程式接口调用实现
  • 795
分享到

SpringCloud基于Feign的可编程式接口调用实现

2024-04-02 19:04:59 795人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录前言一、基本使用1.引依赖2.加注解3.声明接口4.调用二、进阶1.日志配置2.性能优化前言 Feign 可以替代 RestTemplate 完成可编程式接口调用,并且内部集成

前言

Feign 可以替代 RestTemplate 完成可编程式接口调用,并且内部集成 Ribbon 实现了负载均衡

在这里插入图片描述

一、基本使用

1.引依赖

pom文件增加 openfeign 依赖

<!-- feign -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2.加注解

启动类上增加 @EnableFeignClients 注解

@EnableFeignClients
@SpringBootApplication
public class OrderApplication {

    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class, args);
    }
}

3.声明接口

创建client包,包下放使用到的接口

在这里插入图片描述

package com.cxstar.client;

import com.alibaba.fastJSON.jsONObject;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.WEB.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@FeignClient("bookschina-service")
@RequestMapping("/bookschina")
public interface BookschinaClient {

    @GetMapping("/spiderBookList/{searchkey}/{pageno}")
    JSONObject searchBookschina(
            @PathVariable("searchkey") String searchKey,
            @PathVariable("pageno") Integer pageNo
    );

}

直接把你需要调用的微服务里的controller类复制一份过来,修修改改就行了
ps:
1.@FeignClient(“bookschina-service”):访问 spring.application.name=bookschina-service 的微服务
2.@RequestMapping、@GetMapping、@PathVariable 用来映射地址,和controller中的用法一样
3.上面这个接口对应的就是 bookschina-service 微服务下映射地址为 /bookschina/spiderBookList/{searchkey}/{pageno} 的controller类方法

在这里插入图片描述

4.调用

测试类如下

package com.cxstar;

import com.alibaba.fastjson.JSONObject;
import com.cxstar.client.BookschinaClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;


@Slf4j
@SpringBootTest
class OrderApplicationTests {

    @Autowired
    private BookschinaClient bookschinaClient;

    void booksChinaTest() {
    
		// 参数
        String searchKey = "东野圭吾";
        Integer pageNo = 1;
		// 调用
        JSONObject booksJB = bookschinaClient.searchBookschina(searchKey, pageNo);
        log.info(booksJB.toString());

    }

}

二、进阶

1.日志配置

application 文件中加入配置

feign:
  client:
    config:
      default:                      # default 全局配置,局部配置的话可以换成请求的服务名称
        loggerLevel: NONE			# 日志级别 NONE BASIC HEADERS FULL

ps:
1.NONE:没有日志
2.BASIC:记录Http请求发送目标、发送时间、返回时间、总耗时等信息
3.HEADERS:在 BASIC 基础上记录 请求头 和 响应头 信息
4.FULL:在 BASIC 和 HEADERS 的基础上记录 请求体 和 响应体 信息
5.上线后为了优化性能 日志级别尽量用 NONE 或者 BASIC

2.性能优化

Feign底层客户端默认实现是 URLConnection,不支持连接池,每次http请求都要三次握手,断开时四次挥手,有点浪费性能,可以用 Apache HttpClient 替代 URLConnection

<1>pom 引入依赖

<!-- feign 连接池 -->
<dependency>
    <groupId>io.GitHub.openfeign</groupId>
    <artifactId>feign-httpclient</artifactId>
</dependency>

<2>application 文件中加入配置

feign:
  httpclient:
    enabled: true                   # 开启feign对 httpclient 的支持
    max-connections: 200            # 最大连接数
    max-connections-per-route: 50   # 每个请求接口的最大连接数

ps:
1.max-connections 和 max-connections-per-route 的值需要根据具体情况设定

到此这篇关于SpringCloud基于Feign的可编程式接口调用实现的文章就介绍到这了,更多相关SprinGCloud Feign可编程式接口调用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringCloud基于Feign的可编程式接口调用实现

本文链接: https://www.lsjlt.com/news/146344.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringCloud基于Feign的可编程式接口调用实现
    目录前言一、基本使用1.引依赖2.加注解3.声明接口4.调用二、进阶1.日志配置2.性能优化前言 Feign 可以替代 RestTemplate 完成可编程式接口调用,并且内部集成 ...
    99+
    2024-04-02
  • SpringCloud基于Feign的可编程式接口怎么调用
    今天小编给大家分享一下SpringCloud基于Feign的可编程式接口怎么调用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-06-30
  • 基于Feign实现异步调用
    目录一、背景二、使用feign理由三、解决方案四、demo代码实现4.1 接口编写4.2 接口发布4.3 调用4.4 结果(很明显,是异步调用) 五、问题一、背景 希望将h...
    99+
    2024-04-02
  • SpringCloud中的Feign远程调用接口传参失败问题
    目录Feign远程调用接口传参失败这是调用者这是feign的client这是被调者Feign远程调用的注意点定义的做远程调用的api接口service微服务中的Controller的...
    99+
    2024-04-02
  • SpringCloud使用Feign实现远程调用流程详细介绍
    目录前言1. 导入依赖坐标2. 开启Feign自动装配3. 声明远程调用4. 替代RestTemplate5. 测试前言 本次示例代码的文件结构如下图所示。 1. 导入依赖坐标 在...
    99+
    2023-02-15
    SpringCloud Feign远程调用 SpringCloud Feign
  • 如何使用Python基于接口编程的方法实现
    目录先通过一个实例来了解下接口到底解决什么问题。 定义一个接口 定义类,继承接口Python 抽象基类的介绍 (PEP3119) 软件行业,唯一不变的就是变化。产品经理会变,产品需求...
    99+
    2024-04-02
  • 基于 Redis 实现接口限流的方式
    目录基于 Redis 实现接口限流1. 准备工作2. 限流注解3. 定制 RedisTemplate4. 开发 Lua 脚本5. 注解解析6. 接口测试7. 全局异常处理总结基于 R...
    99+
    2024-04-02
  • Feign 集成 Hystrix实现不同的调用接口不同的设置方式
    问题描述 小编在写项目时遇到一个需求: 假设现在有三个项目A、B、C,其中A、B作为服务提供方,C作为调用方,需要实现C在调用A、B时实现不同的超时时间,比如C调用A时超时是2s,调...
    99+
    2024-04-02
  • feign调用实现url和接口路径的动态配置化
    做接口开发请求第三方服务的接口,大概率会用feign做请求,而feign也是最常用的一种rpc框架; 这里主要是说明在进行feign请求的时候,第三方服务的url和接口也是可以通过读取配置文件的配置,来进行请求的; 至于为什么要把接口和ur...
    99+
    2023-09-06
    java 后端
  • Java编程实现NBA赛事接口调用实例代码
    找别人提供的接口,比如在这里我选择的是聚合数据提供的接口要申请相应的AppKey方可使用,此参数会作为接口的参数调用。调用别人提供的接口方法代码如下:package juheapi.nba;import net.sf.json.JSONOb...
    99+
    2023-05-30
    java 接口对接开发实例 ava
  • C#实现基于任务的异步编程模式
    目录一.延续任务二.同步上下文三.使用多个异步方法1.按顺序调用异步方法2.使用组合器四.转换异步模式五.错误处理1.异步方法的异常处理2.多个异步方法的异常处理3.使用Aggreg...
    99+
    2024-04-02
  • 基于python实现rpc远程过程调用
    目录基于python实现RPC的demo前言一、主要内容二、实现步骤1. 进程间的通信2. 异步回调实现思路总结基于python实现RPC的demo 这是一个远程过程调用(RPC)的...
    99+
    2024-04-02
  • 关于Java实现HttpServer模拟前端接口调用
    目录Java 实现 Http Server,模拟前端接口调用执行结果展示请求和响应配置文件xml 文件xml 映射的实体类xml 文件解析器类接收请求并处理的部分接收请求的代码:Se...
    99+
    2023-05-15
    HttpServer HttpServer模拟前端 Http模拟接口调用
  • SpringCloud应用idea实现可相互调用的多模块程序详解
    目录版本选择技术选型spring boot单体模块的搭建创建父工程父工程的pom文件创建子模块RestTemplate使用步骤系统重构(子模块间重复代码的抽取)版本选择  ...
    99+
    2024-04-02
  • java远程调用接口、URL的方式
    一:httpUrlConnection 1.获取HttpURLConnection连接对象 public static HttpURLConnection getHttpURLConne...
    99+
    2023-09-17
    java servlet 开发语言
  • 基于Java实现Socket编程的方法
    这篇文章主要介绍“基于Java实现Socket编程的方法”,在日常操作中,相信很多人在基于Java实现Socket编程的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于Java实现Socket编程的方法...
    99+
    2023-06-29
  • FeignClient实现接口调用方式(不同参数形式)
    目录FeignClient接口调用1、无参2、字符串参数3、对象参数feign接口参数遇到的bug服务接收方接口解决方案FeignClient接口调用 无参字符串参数对象参数 拟定客...
    99+
    2024-04-02
  • SpringCloud Nacos + Ribbon 调用服务的实现方式(两种)
    目录1.代码方式调用1.1创建服务提供者:Provider1.2创建服务调用者:Consumer2.注解方式调用注解实现原理分析总结在 Nacos 中,服务调用主要是通过 RestT...
    99+
    2024-04-02
  • 基于python如何实现rpc远程过程调用
    这篇文章主要介绍“基于python如何实现rpc远程过程调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于python如何实现rpc远程过程调用”文章能帮助大家解决问题。一、主要内容所谓RPC,...
    99+
    2023-07-02
  • Python怎么实现调用小程序接口
    本篇内容介绍了“Python怎么实现调用小程序接口”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!获取access_token,直接调用接口。...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作