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的实现类。

  • 相关阅读:
    《PS技巧精华全部在这里!》
    c#的dictionary为什么在扩容时会以素数扩容
    初识Lua
    常用的排序
    像gal一样讲故事~
    打枪的实现
    武器的方向,人物和武器的翻转
    虚拟摇杆的修改
    实现虚拟摇杆的移动
    itemPool和MessageCenter
  • 原文地址:https://www.cnblogs.com/zxh06820/p/12906981.html
Copyright © 2011-2022 走看看