zoukankan      html  css  js  c++  java
  • springcloud的负载均衡Ribbon入门

    1.启用负载均衡

    在Eureka中已经集成了Ribbon

    只需要在consumer的引导类中的RestTemplate的配置方法上添加@LoadBalanced 注解:

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    2.修改调用方式

    不再手动获取ip和端口,而是直接通过服务名称调用:

    @Controller
    @RequestMapping("consumer/user")
    public class UserController {
    
        @Autowired
        private RestTemplate restTemplate;
    
        //@Autowired
        //private DiscoveryClient discoveryClient; // 注入discoveryClient,通过该客户端获取服务列表
    
        @GetMapping
        @ResponseBody
        public User queryUserById(@RequestParam("id") Long id){
            // 通过client获取服务提供方的服务列表,这里我们只有一个
            // ServiceInstance instance = discoveryClient.getInstances("test-provider").get(0);
            String baseUrl = "http://test-provider/user/" + id;
            User user = this.restTemplate.getForObject(baseUrl, User.class);
            return user;
        }
    
    }

     3.修改负载均衡配置

    在application.yml中

    server:
      port: 80
    spring:
      application:
        name: test-consumer
    eureka:
      client:
        service-url:
          defaultZone: http://127.0.0.1:8086/eureka
    test-provider:
      ribbon:
        NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

    注意写法格式:

    格式是:{服务名称}.ribbon.NFLoadBalancerRuleClassName:值,值就是IRule的实现类。

  • 相关阅读:
    清除浮动
    版心和布局流程
    浮动(float)
    盒子模型(CSS重点)
    CSS 三大特性
    CSS 背景(background)
    移动web开发之rem布局
    .移动端常见布局
    移动端基础
    CSS高级技巧
  • 原文地址:https://www.cnblogs.com/zxh06820/p/12906981.html
Copyright © 2011-2022 走看看