1. feign
简介
feign
是 netflix
开发的声明式、模板化的 http
客户端,它使得 http
请求变得更简单,feign
底层的使用的 http
通信框架是 HttpClient
。feign
默认集成了 ribbon
,并和 Eureka
结合实现了负载均衡。feign
被广泛应用在 SpringCloud
的解决方案中,是学习基于 SpringCloud
微服务架构不可或缺的重要组件
官方 github
:https://github.com/OpenFeign/feign
2. feign
实现远程调用
在 上一篇 文章中,已经实现了 ribbon
的客户端负载均衡,虽然使用 RestTemplate
也可以实现服务之间的调用,但是它不够理想化,不够规范化,标准化。所以,本篇将使用 feign
实现服务之间的调用
项目结构依然使用上一篇文章的项目,稍加改动就可实现
2.1. Maven
主要依赖
在 eureka-client-consumer
消费方添加如下依赖
<!--springcloud feign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.2. application.properties
配置文件
2.2.1. eureka-client-producer
服务提供方
server.port=8080
#注册进eureka的名称
spring.application.name=eureka-client-producer
#JDBC 配置
spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/shiro?characterEncoding=utf8&useSSL=false&autoReconnect=true&serverTimezone=UTC
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#druid 连接池配置
spring.datasource.druid.initial-size=3
spring.datasource.druid.min-idle=3
spring.datasource.druid.max-active