Feign 远程调用、Ribbin 负载均衡和重试

Feign 远程调用

1.添加feign依赖

请添加图片描述

2.启动类添加注解

@EnableFeignClients 触发 Feign 自动配置,扫描远程调用接口,创建动态代理对象

3.定义远程调用接口

/*
商品调用
声明式客户端接口--不需要写代码,feign会自己写
三步配置:
1.调用哪个模块
2.调用哪个路径
3.提交什么参数
 */
@FeignClient(name = "item-service")//写注册表中的名字,eureka会根据这个名字找到这个服务的地址
public interface ItemClient {

    /*
    spring mvc注解:
    在这里起的作用是相反的作用--作为客户端去调用服务器
        - controller 响应客户端调用
        - 客户端接口 向服务器发送调用
     */
    //获取商品列表
    @GetMapping("/{orderId}")
    JsonResult<List<Item>> getItems(@PathVariable("orderId") String orderId);

    //减少商品库存
    @PostMapping("/decreaseNumber")
    JsonResult<?> decreaseNumber(@RequestBody List<Item> items);
}

  • 这里就是feign的客户端,先是通过@FeignClient(name = "item-service")在eureka列表中找到要调用的服务,接着通过@GetMapping("/{orderId}")找到对应的controller请求,再通过
    JsonResult<List<Item>> getItems(@PathVariable("orderId") String orderId);创建代理对象完成功能(个人理解)

4.在service实现类中注入这个接口完成服务调用

Ribbin 负载均衡和重试

请添加图片描述

1.添加依赖

  • eureka中已经添加了Ribbon依赖

2.RestTemplate 设置 @LoadBalanced

@LoadBalanced 负载均衡注解,会对 RestTemplate 实例进行封装,创建动态代理对象,并切入(AOP)负载均衡代码,把请求分发到集群中的服务器

@EnableDiscoveryClient
@SpringBootApplication
public class Sp06RibbonApplication {
	
	@LoadBalanced //负载均衡注解
	@Bean
	public RestTemplate getRestTemplate() {
		return new RestTemplate();
	}

之后会跟新重试

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值