Open Feigin 服务通信 详细讲解

本文详细介绍了Spring Cloud OpenFeign的使用,包括Feign的基础概念、OpenFeign与Feign的区别,以及如何在微服务中实现负载均衡。通过实例展示了如何在服务消费者和提供者中配置OpenFeign,以及与RestTemplate的对比。
摘要由CSDN通过智能技术生成

前言

微服务间如何通信,主要使用的是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>

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

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

它的依赖是:

  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
  </dependency>

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值