当前位置:   article > 正文

Open Feigin 服务通信 详细讲解_openfeign 内部通信机制

openfeign 内部通信机制

前言

微服务间如何通信,主要使用的是restTemplate对象。

微服务之间常见的通信方式有两种:

一种是RPC(比如dubbo使用的就是rpc),第二种就是Restful ApI 的Http调用;

在SpringCloud中,默认是使用http来进行微服务的通信,其最常用的实现形式有两种:

一种是使用RestTemplate,还有一种是Feign(或 OpenFeign)。

Feign(或 OpenFeign)如何使用

什么是Feign

Feign是Netflix开发的声明式、模板化的HTTP客户端。使用Feign能让编写Web Service客户端更加简单, 它的使用方法也比较简单只需要定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。
Feign Client也支持可拔插式的编码器和解码器。
Spring Cloud对Feign进行了封装(OpenFeign),使得它也支持了Spring MVC标准注解和HttpMessageConverters。
Feign Client还可以与Eureka或者Consul组合使用,从而实现负载均衡。
Feign和OpenFeign的区别
Feign是Netflix开发的一个轻量级的restful的http web service client。Feign内置了ribbon,可以支持客户端的负载均衡。
它的使用只需要使用feign的注解定义接口,然后调用这个接口就可以调用服务注册中心的服务。

  <dependency>
      <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-feign</artifactId>
  </dependency>
  • 1
  • 2
  • 3
  • 4

而OpenFeign是Spring cloud在netflix feign基础之上进行了封装和增强,使得它也支持了Spring MVC标准注解和HttpMessageConverters。OpenFeign的@OpenFeignClien注解可以解析@requestMapping

注解标注的接口,并通过动态代理的方式生成其实现类,然后在实现类中实现负载均衡和服务调用。

它的依赖是:

  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
  </dependency>
  • 1
  • 2
  • 3
  • 4

Feign目前是维护状态,今天主要学习的就是Spring Cloud的OpenFeign组件,OpenFeign也是目前主流使用的。

OpenFeign的简单使用

首先需要创建两个基本的springboot项目,源码地址放在最后。

项目结构如下:

需要创建两个项目,服务提供者Provider和服务消费者Consumer:

一、首先需要在两个项目中都引入nacos相关的依赖,并且设置配置文件:

Provider服务提供者项目:

Pom.xml
在这里插入图片描述

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>${spring-cloud-alibaba.version}</version>
</dependency>

<!--读取配置中心-->
<dependency>
    <groupId>org.s
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/1005802
推荐阅读
相关标签
  

闽ICP备14008679号