zoukankan      html  css  js  c++  java
  • Spring Cloud 6:服务消费

    使用LoadBalancerClient

    在Spring Cloud Commons中提供了大量的与服务治理相关的抽象接口,包括DiscoveryClient、以及LoadBalancerClient等。对于这些接口的定义,Spring Cloud做这一层抽象,很好的解耦了服务治理体系,使得我们可以轻易的替换不同的服务治理设施。

    从LoadBalancerClient接口的命名中,知道这是一个负载均衡客户端的抽象定义。

    引入Eureka或Consul [此处使用Eureka]

    pom.xml

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

    application.properties

    spring.application.name=yang-consumer
    server.port=1002
    
    eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/

    Application.java

    @EnableDiscoveryClient
    @SpringBootApplication
    public class Application {
    
        @Bean
        public RestTemplate restTemplate() {
            return new RestTemplate();
        }
    
        public static void main(String[] args) {
            new SpringApplicationBuilder(Application.class).web(true).run(args);
        }
    }

    Controller.java

    @RestController
    @RequestMapping("/user")
    public class UserController {
    
        @Autowired
        LoadBalancerClient loadBalancerClient;
        @Autowired
        RestTemplate restTemplate;
    
        @GetMapping("/list")
        public BaseResult link2Consumer() {
            ServiceInstance serviceInstance = loadBalancerClient.choose("yang-producer");
            String url = "http://" + serviceInstance.getHost() + ":" + serviceInstance.getPort() + "/user/list";
            System.out.println(url);
            return restTemplate.getForObject(url, BaseResult.class);
        }
    }


    这里注入了LoadBalancerClient和RestTemplate,并在/user/list接口的实现中,先通过loadBalancerClient的choose函数来负载均衡的选出一个yang-producer的服务实例,这个服务实例的基本信息存储在ServiceInstance中,然后通过这些对象中的信息拼接出访问/user/list接口的详细地址,最后再利用RestTemplate对象实现对服务提供者接口的调用

  • 相关阅读:
    代码规范
    svn的牛逼操作反向merge
    QT 半透明遮罩(弹窗)
    ACE库 ACE_Handle_Set类解析
    linux系统如何启用ftp服务
    vim color
    Linux动态库应用
    自建工程makefile文件
    Makefile工程文件
    linux杂记
  • 原文地址:https://www.cnblogs.com/yang21/p/10029202.html
Copyright © 2011-2022 走看看