Feign声明式远程调用

本文介绍了如何在SpringCloud中利用Feign进行声明式服务调用,Feign集成了Ribbon和Hystrix,使得负载均衡和服务熔断得以轻松实现。通过在pom文件中添加依赖,创建Feign接口,并在Controller中注入实现远程调用。示例展示了在MemberController中调用Coupon服务的接口,实现会员与优惠券的远程交互。
摘要由CSDN通过智能技术生成

1.简介

Feign 是一个声明式的 HTTP 客户端,它的目的就是让远程调用更加简单。Feign 提供了 HTTP请求的模板,通过编写简单的接口和插入注解,就可以定义好 HTTP 请求的参数、格式、地址等信息。
Feign 整合了 **Ribbon(负载均衡)**和 Hystrix(服务熔断),可以让我们不再需要显式地使用这两个组件。
SpringCloudFeign 在 NetflixFeign 的基础上扩展了对 SpringMVC 注解的支持,在其实现下,我们只需创建一个接口并用注解的方式来配置它,即可完成对服务提供方的接口绑定。简化了SpringCloudRibbon 自行封装服务调用客户端的开发量

2.pom中添加依赖

 <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-openfeign</artifactId>
  </dependency>

3.CouponController中添加memberCoupons

 /**
     * 远程调用测试(会员与优惠券)
     * @return
     */
    @RequestMapping("/member/list")
    public R memberCoupons(){
        CouponEntity couponEntity = new CouponEntity();
        couponEntity.setCouponName("满100减10");
        return R.ok().put("coupons",Arrays.asList(couponEntity));
    }

4.声明式远程接口

package com.atguigu.gulimall.member.feign;

import com.atguigu.common.utils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;

@FeignClient("gulimall-coupon")
public interface CouponFeignService {
    @RequestMapping("/coupon/coupon/member/list")
    public R memberCoupons();
}

在这里插入图片描述

5.启动类上加@EnableFeignClients

在这里插入图片描述

6.MemberController中新增testFeign

/**
 *测试远程调用(会员与优惠券)
 */
@Autowired
CouponFeignService couponFeignService;
@RequestMapping("/feign/memberCoupon")
public R testFeign(){
    MemberEntity memberEntity = new MemberEntity();
    memberEntity.setNickname("java小生不才");
    R memberCoupons = couponFeignService.memberCoupons();
    return R.ok().put("member",memberEntity)
            .put("coupon",memberCoupons.get("coupons"));
}

7.访问

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值