Gradle+Springcloud构建项目(三)FeignClient-服务消费调用
前两章讲了如何搭建eureka分布式注册中心,那么这一章,我们就尝试着搭建生产者与消费者的服务。
0、基于gradle的调整
大家都知道,gradle比起maven来说,更加的轻便与快捷,比如免去了使用xml来构建项目的繁琐,要从仓库下载jar包,只需要一行代码。同时,它也拥有maven中pom.xml父类子类继承的方法。
这样一来,子模块中就不需要再引这些jar包了,项目变得更加简洁。
1、Feign
Feign是一个声明式的Web服务客户端。这使得Web服务客户端的写入更加方便 要使用Feign创建一个界面并对其进行注释。它具有可插入注释支持,包括Feign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。Spring Cloud增加了对Spring MVC注释的支持,并使用Spring Web中默认使用的HttpMessageConverters。Spring Cloud集成Ribbon和Eureka以在使用Feign时提供负载均衡的http客户端。
1、1 建立生产者项目
与之前的一样
其他的步骤和我们之间构建euraka注册中心时候一模一样,忘记的小伙伴可以翻翻前面的内容
因为准备搭建一个生产者集群,那么这边可以再按照上诉流程构建一个消费者服务
1、2 配置类配置
eureka.client.service-url.defaultZone=http://eureka2:8089/eureka/,http://eureka1:8088/eureka/
server.port=8101
spring.application.name=project-service
feign.hystrix.enabled=true
eureka.client.service-url.defaultZone=http://eureka2:8089/eureka/,http://eureka1:8088/eureka/
server.port=8102
spring.application.name=project-service
feign.hystrix.enabled=true
1、3 启动类
启动类中添加@EnableDiscoveryClient注解 @EnableFeignClients注解
@EnableFeignClients 介绍
1、@FeignClient注释中,String值(以上“存储”)是一个任意的客户端名称,用于创建Ribbon负载平衡器
2、Spring Cloud的Feign支持的中心概念是指定的客户端。每个假装客户端都是组合的组件的一部分,它们一起工作以根据需要联系远程服务器,并且该集合具有您将其作为应用程序开发人员使用@FeignClient注释的名称。Spring Cloud根据需要,使用FeignClientsConfiguration为每个已命名的客户端创建一个新的集合ApplicationContext
Spring Cloud可以通过使用@FeignClient声明额外的配置(FeignClientsConfiguration)来完全控制假客户端。