IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 微服务之Feign分布式RPC -> 正文阅读

[网络协议]微服务之Feign分布式RPC

从换了工作到web 之后,一直在各种新技术之间切换,各种挣扎,一直没有时间进行总结,今天稍微总结下,做个记录。

1 基本概念

  • Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。
  • 使用Feign可以像调用本地方法一样调用远程HTTP接口
  • Spring Cloud Feign是基于Netflix feign实现,整合了Spring?Cloud?Ribbon和Spring?Cloud?Hystrix
  • Spring Cloud Feign对Feign进行了增强,使Feign支持了Spring MVC注解
  • 使用Spring Cloud Feign可以轻松实现解耦、简化开发、负载均衡、远程调用、容错和降级

2 基本原理

  • 启动时,程序会进行包扫描,扫描所有包下所有@FeignClient注解的类,并将这些类注入到 Spring 的IOC容器中。当定义的Feign中的接口被调用时,通过JDK的动态代理来生成RequestTemplate

  • RequestTemplate中包含请求的所有信息,如请求参数,请求URL等。
  • RequestTemplate将Request交给client处理,这个client默认是JDK的HttpURLConnection,也可以是Okhttp

  • 最后client封装成LoadBaLanceClient,结合Ribbon负载均衡地发起调用

3 使用方式

3.1 添加依赖

1

2

3

4

<dependency>

????<groupId>org.springframework.cloud</groupId>

????<artifactId>spring-cloud-starter-openfeign</artifactId>

</dependency>

注意:不用写版本,因为springboot会自动协商。?

3.2 开启Feign

灰常简单,在启动类application上加上?@EnableFeignClients?注解就可以了

3.3 创建Client

新建接口类,在接口类上加上?@FeignClient?注解,如:

@FeignClient(name = "msskill")
public interface UserFeignClient {
  @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  public User findById(@PathVariable("id") Long id);
}
  • name:是微服务的名字

  • RequestMapping:定义了远程的url路径 和 调用方式

总结:

一个使用java动态代理,对http 请求自动组装的库。

使用的时候先开启,增加注解@EnableFeignClients

然后创建接口,在接口上增加?@RequestMapping 注解

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:57:23  更:2022-03-04 15:58:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/5 13:28:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码