山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十四)- 微服务(4)

本文主要是介绍山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十四)- 微服务(4),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

8. http客户端Feign

8.1 feign远程调用

8.2 feign自定义配置

8.3 feign性能优化

8.4 feign最佳实践


8. http客户端Feign

8.1 feign远程调用

RestTemplate存在的问题 :

  1. 代码可读性差

  2. 参数复杂URL难以维护

Feign是声明式的http客户端

使用步骤 :

  1. 引入依赖

  <!--Feign客户端依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
  1. 开启自动装配 在启动类上添加注解

  @EnableFeignClients
  1. 创建接口声明

  @FeignClient("userservice")public interface UserClient {@GetMapping("/user/{id}")User findById(@PathVariable Long id);}
  1. order- controller中替换原来发请求的代码

  @Autowiredprivate OrderMapper orderMapper;​// 注入feign接口@Autowiredprivate UserClient userClient;​@GetMapping("{orderId}")public Order queryOrderByUserId(@PathVariable("orderId") Long orderId) {Order order = orderMapper.findById(orderId);User user = userClient.findById(order.getUserId());order.setUser(user);return order;}

8.2 feign自定义配置

修改日志级别 :

  1. 配置文件方式 :

全局生效 :

  feign:client:config:default:     #  default就是全局配置    如果写服务名称就是针对某个微服务的配置loggerLevel: FULL  # 日志级别

只针对某个微服务生效

  feign:client:config:userservice:     # 只对userservice生效loggerLevel: FULL  # 日志级别

  1. 代码配置

8.3 feign性能优化

主要包括 :

  1. 使用连接池代替默认的URLCollection

  2. 日志级别,最好用basic或none

连接池配置 ;

引入依赖 :

  <!--httpClient的依赖--><dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId></dependency>

配置连接池 :

  feign:client:config:default:     #  default就是全局配置    如果写服务名称就是针对某个微服务的配置loggerLevel: BASIC  # 日志级别httpclient:enable: true           #  支持HTTPClient的开关max-connection: 200       #   最大连接数max-connections-per-route: 50     #  单个路径的最大连接数

8.4 feign最佳实践

方式一 :

方式二 :

方式二的实现 :

  1. 新建feign-api模块 引入feign的stater的依赖

  2. 把order-service的 UserClient User实体类 FeignConfiguration配置类

  3. 复制到feign-api模块中

  4. 在order-service中引入feign-api模块的依赖

  5. 测试

这篇关于山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十四)- 微服务(4)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1026093

相关文章

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳