您的位置:首页 > 编程语言 > Java开发

springcloud实战之6 服务消费者(Feign)

2017-12-14 09:31 746 查看
上一篇介绍了 springboot实战之服务消费者(ribbon) 消费服务,本篇介绍利用Feign消费服务。

简介

Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。

创建服务消费者(springcloud-consumer-feign)

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath />
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>


添加入口类(SpringCloudConsumerFeignApplication.java)

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class SpringCloudConsumerFeignApplication {
public static void main(String[] args) {
SpringApplication.run(SpringCloudConsumerFeignApplication.class,args);
}
}


添加配置文件(application.yml)

server:
port: 8003
spring:
application:
name: springcloud-consumer-feign
eureka:
client:
service-url:
defaultZone: http://peer1:8080/eureka/[/code] 

新建service层接口

定义一个feign接口,通过@FeignClient(“服务名”),来指定调用哪个服务。

@FeignClient(value = "springcloud-producer-rest")
public interface ISchedualRestService {
@GetMapping("/api/rest/info")
String info() ;
}


新建web层接口

对外暴露http接口

@RestController
@RequestMapping("/api/rest")
public class RestfulController {

@Autowired private ISchedualRestService iSchedualRestService ;

@GetMapping(value = "/getMessage")
public String getMessage(){
return iSchedualRestService.info() ;
}
}


启动项目

1.启动springcloud-eureka-server集群,端口分别为 8080,8090

2.启动springcloud-producer-rest,端口分别为 8001

3.启动服务消费者springcloud-consumer-feign。端口 8003

访问效果:



访问服务接口效果



参考文档

spring-cloud-feign

源码

springcloud-server-eureka

springcloud-producer-rest

springcloud-consumer-feign

历史文章

springcloud实战之高可用服务注册中心(eureka集群)

springcloud实战之服务注册与发现(eureka实现)

springcloud实战之技术选型:dubbo还是springcloud

springboot实战之服务消费者(ribbon)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Feign spring cloud