【Spring Cloud】-跨服务调用

实现RestTemplate调用方式
1、使用LoadBalance注解,将restTemplate作为一个bean配置

@Component
public class RestTemplateConfig {

    //使用LoadBalance注解,将restTemplate作为一个bean配置
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return restTemplate();
    }
}

2、在controller中将RestTemplate引入

@RestController
public class ClientController {
    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/getProductMsg")
    public String getProductMsg(){

        //第三种方式(利用@LoadBalance注解,可在restTemplate里使用PRODUCT应用名字,来访问PRODUCT的服务)
        String response = restTemplate.getForObject("http://PRODUCT/msg",String.class);
        return response;
    }

实现Feign调用方式
1、增加依赖

<!-- 添加feign声明式webservice client -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
        </dependency>

2、在启动主类上加注解@EnableFeignClients 
3、新建一个Client,来调用product的接口,声明调用呢些方法

//表示访问product的接口
//@FeignClient(name="product")
public interface ProductClient {
    @GetMapping("/msg")   //调用product的这个接口
    String productMsg();    //返回productMsg
   }

4、controller

@RestController
public class ClientController {
    //Feign的使用方法
    @Autowired
    private ProductClient productClient;

    @GetMapping("/getProductMsg")
    public String getProductMsg(){
        //Feign的使用方法
        String response = productClient.productMsg();
        return response;
    }
}

Ribbon,负载均衡
Eureka属于客户端发现,客戶端向Eureka Serve拉取已注册的可用服务信息,然后根据负载均衡策略,直接命中哪台服务器提供服务,这些操作都是在客户端完成,不需要服务端,spring cloud中的客户端负载均衡器就是Ribbon组件,Restemplate、Feign、Zuul都使用到了Ribbon,只要使用@template和@FeignClient时,ribbon就会自动使用。
————————————————

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值