赞
踩
前言
微服务间如何通信,主要使用的是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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。