【分布式实战】(四)服务之间的远程调用OpenFeign

步骤:
1、两个服务均在配置文件开启openfeign,并设置项目名,application-name
2、两个服务都在启动类上加上@EnableFeiginClients注解(默认是全部接口都可以被远程调用,除非你设置某一个包地址)
3、使用的时候,使用其他服务的接口
service-ucenter 为服务名,/api/ucenter/member/inner/get-member-dto/{memberId} 为接口地址。
这个服务的controller直接调用UcenterMemberService 的getMemberDtoByMemberId方法即可调用service-ucenter服务的/api/ucenter/member/inner/get-member-dto/{memberId}接口

@FeignClient(value = "service-ucenter", fallback = UcenterMemberServiceFallBack.class)
public interface UcenterMemberService {
    @GetMapping(value = "/api/ucenter/member/inner/get-member-dto/{memberId}")
    MemberDto getMemberDtoByMemberId(@PathVariable(value = "memberId") String memberId);
}

使用声明式的远程服务org.springframework.cloud.openfeign进行服务之间的远程调用

一、服务A:

创建一个普通的api
在这里插入图片描述

二、服务B:

1、创建一个feign包,专门用来存放远程调用接口

创建一个接口,内容如下,其中RequestMapping中的内容必须是远程调用的端口号后面的全部内容。

package com.tangxz.gulimall.member.feign;

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

/**
 * @Info: 声明式的远程服务 调用gulimall-coupond的接口
 * @Author: 唐小尊
 * @Date: 2020/7/11  8:53
 */
@FeignClient("gulimall-coupon")
public interface CouponFeignService {
    @RequestMapping("/coupon/coupon/member/list")
    public R membercoupons();
}
2、在启动类添加注解

注解参数值为远程调用接口存放的包路径

@EnableFeignClients(basePackages = "com.tangxz.gulimall.member.feign")

在这里插入图片描述

三、服务B使用

直接像service或mapper一样,注入直接使用
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值