springCould中的OpenFeign-从小白开始【6】

news2024/11/26 16:52:30

目录

1.简单介绍❤️❤️❤️

2.能干嘛❤️❤️❤️

3.简单入门 ❤️❤️❤️

4.超时控制 ❤️❤️❤️

5.日志打印❤️❤️❤️


1.简单介绍❤️❤️❤️

  • OpenFeign是一个用于微服务架构中的声明式、模板化的HTTP客户端库。
  • 它简化了编写服务间通信的代码,使得开发人员可以轻松定义和调用RESTful API。
  • OpenFeign还提供了负载均衡、错误重试、请求日志等功能,使得服务间通信更加可靠和易于管理。

2.能干嘛❤️❤️❤️

  • OpenFeign的设计宗旨式简化Java Http客户端的开发
  • Feign在restTemplate的基础上做了进一步的封装
  • OpenFeign集成了Ribbon,利用ribbon维护了服务列表,并且通过ribbon实现了客户端的负载均衡

3.简单入门 ❤️❤️❤️

1.建模块

在父工程下建模块

注意:jdk版本和maven版本

2.写pom

1.springboot依赖

2.eureka客户端

3.openFeign依赖

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <!--eureka的Client端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!--openFeign-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>

3.加yml

1.服务端口

2.入住eureka的配置信息

server:
  port: 80

eureka:
  client:
    register-with-eureka: false
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka

4.主启动类

@EnableFeignCliens:启用Feign客户端

@SpringBootApplication
@EnableFeignClients
public class OrderOpenFeignMain80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderOpenFeignMain80.class);
    }
}

5.使用@FeignClient

1.创建接口

2.使用@Comonent标识为bean

3.加上@FeignClient(value="服务的名称")

4.方法即为要访问服务端的方法

@Component
@FeignClient(value = "COULD-PAYMENT-SERVICE")
public interface PaymentFeignService {

    @GetMapping("/payment/selectById/{id}")
    public CommonResult getPaymentById(@PathVariable("id") Integer id);

}

6.编写业务

1.创建controller

2.自动装配刚才配置的接口

3.直接调用

@RestController
public class OrderFeignController {

    @Autowired
    private PaymentFeignService paymentFeignService;

    @GetMapping("/consumer/payment/get/{id}")
    public CommonResult<Payment> getPaymentById(@PathVariable("id")Integer id){
        return paymentFeignService.getPaymentById(id);
    }
}

4.超时控制 ❤️❤️❤️

  • 1.8001服务端故意写个超时接口
  • 2.80消费端接口写入超时接口
  • 3.80消费端controller调用接口

问题:当使用8001服务端直接访问超时接口时,除了时间慢一点,其他没问题,但是当80消费端调用接口时直接报错。

原因:消费端OpenFeign默认等待1秒钟,超时侯报错 

解决:在yml添加配置

#设置feign客户端超时时间(OpenFeign默认支持ribbon)
ribbon:
  #指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
  ReadTimeout: 5000
  #指的是建立连接后从服务器读取到可用资源所用的时间
  ConnectTimeout: 5000

5.日志打印❤️❤️❤️

对OpenFeign接口的调用情况进行监控和输出

  • NONE:默认的,不显示任何日志;
  • BASIC:仅记录请求方法、URL、响应状态码及执行时间;
  • HEADERS:除了BASIC中定义的信息之外,还有请求和响应的头信息;
  • FULL:除了HEADERS中定义的信息之外,还有请求和响应的正文及元数据。

1.配置日志bean

创建配置类,注入bean

@Configuration
public class FeignConfig {
    @Bean
    Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
    }
}

2.配置yml

在yml文件中添加配置

logging:
  level:
    # feign日志以什么级别监控哪个接口
    com.xz.springcloud.service.PaymentfeignService: debug

日志信息:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1342738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nrm的保姆级使用教程

&#x1f4e2; 鸿蒙专栏&#xff1a;想学鸿蒙的&#xff0c;冲 &#x1f4e2; C语言专栏&#xff1a;想学C语言的&#xff0c;冲 &#x1f4e2; VUE专栏&#xff1a;想学VUE的&#xff0c;冲这里 &#x1f4e2; CSS专栏&#xff1a;想学CSS的&#xff0c;冲这里 &#x1f4…

Linux开发工具——gdb篇

Linux下调试工具——gdb 文章目录 makefile自动化构建工具 gdb背景 gdb的使用 常用命令 总结 前言&#xff1a; 编写代码我们使用vim&#xff0c;编译代码我们使用gcc/g&#xff0c;但是我们&#xff0c;不能保证代码没问题&#xff0c;所以调试是必不可少的。与gcc/vim一样&…

Oracle 拼接字符串

语法 使用||拼接如果内容中有单引号&#xff0c;则可在该单引号前面再加一个单引号进行转义 例子 比如有一个业务是根据需要生成多条插入语句 select insert into des_account_des_role(des_account_id, roles_id) values( || id || , || (select id from des_role where wo…

统一入口,全面提升工作效率,WorkPlus超级APP引领数字化办公新潮流

在数字化办公的时代&#xff0c;企业往往面临着多个应用管理的挑战。员工需要在众多应用之间切换&#xff0c;记忆不同的登录凭证&#xff0c;这不仅分散了注意力&#xff0c;还降低了工作效率。为了应对这一问题&#xff0c;企业需要一站式的解决方案&#xff0c;通过整合繁杂…

【Linux】chage命令使用

chage命令 chage用来更改linux用户密码到期信息&#xff0c;包括密码修改间隔最短、最长日期、密码失效时间等。 语法 chage [参数] 用户名 chage命令 -Linux手册页 选项及作用 执行令 &#xff1a; chage --help 执行命令结果 参数 -d, --lastday 最近日期 …

C++ Qt开发:SqlRelationalTable关联表组件

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍SqlRelationalTable关联表组件的常用方法及灵…

卖家速进!海外社媒矩阵玩起来,让你拥有海量曝光!

作为跨境人&#xff0c;我们都知道利用海外社交媒体去引流&#xff0c;像现在这么多拥有庞大流量的社媒平台&#xff0c;想获得更好的引流效果&#xff0c;那就离不开做社媒矩阵了&#xff0c;打造社交媒体矩阵可以为卖家建立更优流量池&#xff0c;今天龙哥就分享有关社媒矩阵…

Java智慧工地源码,Spring Cloud +UniApp +MySql技术开发,支持多端展示

智慧工地解决方案依托计算机技术、物联网、云计算、大数据、人工智能、VR&AR等技术相结合&#xff0c;为工程项目管理提供先进技术手段&#xff0c;构建工地现场智能监控和控制体系&#xff0c;弥补传统方法在监管中的缺陷&#xff0c;最线实现项目对人、机、料、法、环的全…

JavaScript之常用的事件

文章目录 前言为什么使用事件呢?常用的触发事件窗口事件onbluronfocusonresize窗口加载事件 表单事件onchangeoninput 键盘事件onkeydownonkeyup 鼠标事件onclickondblclickonmousemoveonmouseoutonscroll 总结窗口事件总结表单事件总结键盘事件总结鼠标事件总结 前言 在网页中…

京东年度数据报告-2023全年度烘干机十大热门品牌销量榜单

相较于洗衣机&#xff0c;烘干机市场虽然起步较晚&#xff0c;但在消费升级的浪潮中&#xff0c;烘干机的价值越来越被更多的家庭认可和信赖&#xff0c;行业整体也越来越成熟。不过&#xff0c;随着市场的趋向饱和&#xff0c;烘干机市场的增长也日趋乏力&#xff0c;2023年烘…

Redis:原理速成+项目实战——初识Redis、Redis的安装及启动、Redis客户端

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;首期文章 &#x1f4da;订阅专栏&#xff1a;Redis速成 希望文章对你们有所帮助 在此之前&#xff0c;我做过的项目里面也用到了…

引领创业新风潮,花为缘享奢二手奢侈品买卖如何突出重围脱颖而出

数据显示&#xff0c;中国消费者的奢侈品消费金额占全球的份额从2000年的1%左右提升到2017年的33%。奢侈品消费的主战场仍是品牌发源地的欧洲和美国&#xff0c;中国消费者奢侈品消费规模全球第一。奢侈品逆势增长与持续涨价这件事&#xff0c;无疑预示着二级奢侈品转售市场将迎…

HarmonyOS 组件生命周期

接下来 我们来说组件生命周期 组件包括两个生命周期 aboutToAppear 组件准备加载时触发 aboutToDisappear 组件销魂时触发 我们组件编写代码如下 Entry Component struct Index {State state:boolean true;build() {Row() {Column() {if(this.state){subassembly()}Button(…

66biolinks v42.0.0 已注册 – 生物短链接、URL 缩短器、QR 码和 Web 工具 (SAAS) 源码

66biolinks v42.0.0&#xff1a;全能生物短链接与网络工具平台 一、开篇介绍 66biolinks v42.0.0是一款集生物链接、URL缩短器、二维码和网络工具于一体的综合性软件解决方案。作为社交生物链接平台的佼佼者&#xff0c;66biolinks提供了全方位的功能&#xff0c;旨在满足用户…

最新AI系统ChatGPT网站H5系统源码,支持AI绘画,GPT语音对话+ChatFile文档对话总结+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

Vue2+element-ui 实现select选择器结合Tree树形控件实现下拉树效果

效果&#xff1a; DOM部分 &#xff1a; // 设置el-option隐藏的下拉选项&#xff0c;选项显示的是汉字label&#xff0c;值是value // 如果不设置一个下拉选项&#xff0c;下面的树形组件将无法正常使用 <el-form-item label"报警区域" prop"monitorId"…

2023年度总结(找到工作)

转眼2023年结束了&#xff0c;今天已经12月29日了。从2022年12月25日考研失败后&#xff0c;2023年就变成了找工作以及上班度日的时光了。针对2023年&#xff0c;我想对自己所说的是&#xff1a;终于找到工作了。作为一个普通的专升本&#xff0c;考研落榜生来说&#xff0c;能…

VsCode(Visual Studio Code) 安装插件教程

VsCode&#xff08;Visual Studio Code&#xff09; 安装插件教程 1、打开VsCode 桌面上、最近安装程序上找找吧 在桌面上双击&#xff0c;打开 2、打开的效果图 3、点击左侧最后的插件图标 4、打开后如下图所示 5、在输入框中输入Go 6、同样在安装插件页面也可以卸载、安装…

rax3000m刷openwrt固件

rax3000m刷机过程&#xff08;nand版本&#xff09; 刷机准备文件https://www.123pan.com/s/X5m9-6Ynj.html提取码:VtBW 接线关系&#xff1a;路由器lan口接电脑 1.上传配置开启ssh的配置文件&#xff08;登录路由器后台管理界面在找到配置管理&#xff0c;上传配置文件rax3…