spring cloud feign声明式绑定服务
Feign 是一个声明web服务客户端,这便得编写web服务客户端更容易,使用Feign
创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,
Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,
Spring Web 默认使用了HttpMessageConverters, Spring Cloud 集成 Ribbon
和 Eureka 提供的负载均衡的HTTP客户端 Feign。
(1)pom依赖jar包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
(2)在应用主类中通过@EnableFeignClients注解开启Feign功能
@EnableEurekaClient
@EnableFeignClients
@RibbonClient(name = "SPRING-CLOUD-CLIENT5",configuration = MyRibbonConfig.class)
@SpringBootApplication
public class App {
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) throws Exception {
SpringApplication.run(App.class, args);
}
}
(3)定义服务接口类UserClient
spring-cloud-client为被调用服务的context-path
@FeignClient(value="spring-cloud-client", configuration=FeignConfig.class)
@Component
public interface UserClient {
@RequestMapping(method = RequestMethod.GET,
value = "/spring-cloud-client/user/",
produces = "application/json; charset=UTF-8")
public String getUsers();
}
@Configuration
public class FeignConfig {
@Bean
public Retryer feignRetryer() {
return new Retryer.Default(100, 1, 5);
}
}
(4)在controller层调用UserClient
@Controller("usercontroller")
@RequestMapping("/user")
public class UserController{
@Autowired
UserClient userClient;
@RequestMapping("/")
@ResponseBody
public String list() {
String res = userClient.getUsers();
System.out.println("#### "+res);
return "user";
}
}
http://localhost:8084/spring-cloud-client5/user/
Request processing failed; nested exception is feign.FeignException:
status 404 reading UserClient#getUsers(); content: <html> <head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
我也遇到同样问题,后来我把各个项目中设置的server.servlet.context-path都去掉后就好用了。
如果你也设置了server.servlet.context-path,你可以去掉试试。
如果用feign,还想保留这个配置,该如何去配置还在探索。
com.netflix.client.ClientException: Load balancer
does not have available server for client: client-test
分享到:
相关推荐
Spring Cloud Feign是Spring Cloud生态系统中的一个组件,它作为一个声明式的服务调用客户端,使得编写Web服务客户端变得简单。Feign的设计灵感来源于Netflix的Feign库,它的主要目的是简化微服务之间的通信,使得...
Feign是一个声明式的Web服务客户端,它使得编写Web服务客户端变得简单,而Hystrix则是一个用于处理延迟和故障的库,通过断路器模式来防止服务雪崩,确保系统的稳定。 **Feign简介** Feign是基于NetFlix的一个声明式...
在分布式系统中,服务间的通信是至关重要的,Spring Cloud Feign就是一种声明式的服务调用工具,它使得服务之间的调用变得简单且直观。Feign是Netflix开源的一个接口绑定工具,用于创建声明式的HTTP客户端,通过简单...
在本项目中,我们主要探讨的是如何利用Spring Cloud框架中的Feign组件进行声明式服务调用,这在微服务架构中是非常重要的一环。Feign是Spring Cloud提供的一种声明式Web服务客户端,它使得构建与使用Web服务客户端变...
在本篇文章中,我们将对 Spring Cloud OpenFeign 进行详细介绍,讨论其在声明式服务调用中的应用,包括与 Ribbon 和 Hystrix 的集成。 什么是 Spring Cloud OpenFeign? Spring Cloud OpenFeign 是一个声明式的...
Feign是一个声明式REST客户端,简化了服务间通信的复杂性。它提供了默认值覆盖、手动创建客户端、Hystrix支持和请求/响应压缩等功能。通过Feign,开发者可以以声明性的方式调用其他服务。 Zuul作为Spring Cloud的...
Feign是基于Java的绑定到HTTP API的声明式Web服务客户端。它的设计灵感来源于Netflix的Fiegn,其核心思想是通过注解和接口定义服务调用方式,提供了一种更加优雅的远程调用解决方案。开发者只需定义一个接口,然后在...
Spring Cloud Netflix是另一个关键组件,它提供了Eureka用于服务发现,Ribbon用于客户端负载均衡,Hystrix用于断路器模式,Feign用于声明性REST客户端,以及Turbine和Hystrix Dashboard用于监控和管理断路器。...
Feign则是一个声明式的Web服务客户端,简化了服务间的调用。 7. **Feign客户端** Feign是一个接口绑定库,用于创建声明式的HTTP客户端。它使得编写Web服务客户端变得更加简单,可以直接在接口上定义HTTP请求,由...
SpringCloud之Feign示例详解 Feign是一个声明式Web服务客户端,它可以帮助开发者更方便地编写Web服务客户端。Feign支持可插拔的注解,包括Feign注解和JAX-RS注解。同时,Feign还支持可插拔的编码器和解码器。 在...
7. Feign声明式Web服务客户端:Feign是Netflix开发的声明式Web服务客户端,它能简化HTTP API的调用。Feign整合了Ribbon和Hystrix,简化了基于Ribbon的客户端负载均衡的复杂性。 8. Spring Cloud Config:Spring ...
SpringCloud是一个基于Spring Boot实现的云应用开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)操作...
5. **Feign**:基于接口的声明式HTTP客户端,简化了服务间的调用,自动将HTTP请求与Java方法绑定。 6. **Config Server** 和 **Config Client**:Spring Cloud Config提供了一种集中化的外部配置方式,支持配置的...
- **如何加入 Feign**:Feign 是一个声明式的 REST 客户端,用于简化 HTTP 请求的编写。 - **Feign Hystrix 支持**:Feign 可以与 Hystrix 结合使用,提供容错机制。 - **Feign 日志记录**:Feign 支持日志记录,...
本文详细介绍了 SpringCloud 使用 Feign 实现服务调用的知识点,包括 Feign 的介绍、使用 Spring Cloud Feign 创建服务调用方、服务层、控制器层、配置类、Feign 对不同形式参数的绑定方法等。希望本文能够帮助读者...
7. **Spring Cloud OpenFeign**:Feign 是一个声明式的 Web 服务客户端,使得编写 HTTP 客户端变得更简单,它将服务接口和调用逻辑绑定在一起,提供了更简洁的编码方式。 8. **Spring Cloud Bus**:Spring Cloud ...
4. **Ribbon和Feign客户端**:在Spring Cloud中,Ribbon和Feign常用于服务间的负载均衡。如果各个服务连接不同的数据源,我们可以通过配置Ribbon或Feign客户端,使它们根据请求参数或特定规则选择合适的数据源。 5....
5. **Feign声明式服务调用**:Feign是一个基于Java和JVM的声明式Web服务客户端,它使得编写Web服务客户端变得更简单,通过注解定义接口,Feign能自动生成实现代码,实现服务调用。 6. **Spring Cloud Config**:...
Spring Cloud Feign 是一个声明式 Web 服务客户端,它使得编写 Web 服务客户端变得更简单。Feign 借鉴了 Netflix Hystrix 的命令模式,允许开发者通过创建接口并注解,来定义服务接口。Feign 可以直接创建 HTTP 请求...
- **Spring Cloud 上下文:应用程序上下文服务**:Spring Cloud提供了一个上下文服务,用于管理和组织应用中的各种服务组件。 - **引导应用程序上下文**:描述了如何通过配置文件(如`application.yml`或`...