山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十四)- 微服务(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

相关文章

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关