美文网首页
服务引用RestTemplate

服务引用RestTemplate

作者: Nick_4438 | 来源:发表于2018-08-19 22:11 被阅读0次

    前言

    本文介绍如何调用服务,调用服务有如下方法:

    • RestTemplate,直接使用RestTemplate,写死地址
    • LoadBalancerClient,通过LoadBalancerClient获取地址和端口然后再用方式1处理
    • @LoadBalanced,利用@LoadBalanced注解,可在restTemplate里使用应用名字

    RestTemplate

     //1.第一种方式,写死地址
    RestTemplate restTemplate = new RestTemplate();
    String response =  restTemplate.getForObject("http://localhost:8080/msg",String.class);
    

    LoadBalancerClient

    @RestController
    @Slf4j
    public class ClientController {
        @Autowired
        private LoadBalancerClient loadBalancerClient;
    
        @GetMapping("/getProductMsg")
        public String getProductMsg(){   
            //2.第二种,通过应用名获url,然后再使用第一种方式处理
            RestTemplate restTemplate = new RestTemplate();
            ServiceInstance serviceInstance = loadBalancerClient.choose("PRODUCT");
            String url = String.format("http://%s:%d/msg",serviceInstance.getHost(),serviceInstance.getPort());
            String response =  restTemplate.getForObject(url,String.class);
            log.info("resoponse={}",response);
            return  response;
        }
    }
    

    使用LoadBalanced注解

    • 新建一个带LoadBalanced注解的类
    package com.nick.order.config;
    @Component
    public class RestTemplateConfig {
    
        @Bean
        @LoadBalanced
        public RestTemplate restTemplate(){
            return new RestTemplate();
        }
    }
    
    • 引用
    package com.nick.order.controller;
    
    @RestController
    @Slf4j
    public class ClientController {
    
        @Autowired
        private RestTemplate restTemplate;
    
    
        @GetMapping("/getProductMsg")
        public String getProductMsg() {
            String response =  restTemplate.getForObject("http://PRODUCT/msg",String.class);
            log.info("resoponse={}", response);
            return response;
        }
    }
    

    相关文章

      网友评论

          本文标题:服务引用RestTemplate

          本文链接:https://www.haomeiwen.com/subject/tlehiftx.html