使用Feign远程调用

Feign是什么?

Feign 是一种声明式、模板化的 HTTP 客户端。在 Spring Cloud 中使用 Feign,可以做到使用 HTTP 请求访问远程服务,就像调用本地方法一样的,开发者完全感知不到这是在调用远程方法,更感知不到在访问 HTTP 请求。接下来介绍一下 Feign 的特性,具体如下:

  1. 可插拔的注解支持,包括 Feign 注解和AX-RS注解。
  2. 支持可插拔的 HTTP 编码器和解码器。
  3. 支持 Hystrix 和它的 Fallback。
  4. 支持 Ribbon 的负载均衡。
  5. 支持 HTTP 请求和响应的压缩。Feign 是一个声明式的 WebService 客户端,它的目的就是让 Web Service 调用更加简单。它整合了 Ribbon 和 Hystrix,从而不需要开发者针对 Feign 对其进行整合。Feign 还提供了 HTTP 请求的模板,通过编写简单的接口和注解,就可以定义好 HTTP 请求的参数、格式、地址等信息。Feign 会完全代理 HTTP 的请求,在使用过程中我们只需要依赖注入 Bean,然后调用对应的方法传递参数即可。

简单来说只需要你创建一个接口,然后在上面添加注解即可.

 

 

引入依赖

 

@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class ProductApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProductApplication.class, args);
    }
}

 

1、加入依赖包

<!--  feign      -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
    <version>2.1.4.RELEASE</version>
</dependency>

2、配置

server.port=10980

server.servlet.context-path=/couponcore
spring.application.name=couponcore

app.id=couponcore
appllo.bootstrap.enabled=true
appllo.bootstrap.namespace=application

#appllo
apollo.meta=http://discovery1:8080,http://discovery2:8080,http://discovery3:8080
#eureka
eureka.client.serviceUrl.defaultZone=http://discovery1:8761/eureka,http://discovery2:8761/eureka,http://discovery3:8761/eureka
eureka.instance.instanceId=${spring.cloud.client.ip-address}:${spring.application.name}:${spring.application.instance_id:${server.port}}
#使用真实ip
instance.preferIpAddress=true

3、Feign的使用

@FeignClient(value = "CART")
public interface CartFeignClient {

    @PostMapping("/cart/{productId}")
    Long addCart(@PathVariable("productId")Long productId);
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值