• Ribbon负载均衡


    目前主流的负载方案分为两种,一种是集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式进行负载,有硬件的,比如F5,也有软件的,比如Nginx

    另一种则是客户端自己做负载均衡,根据自己的请求情况做负载,Ribbon就是属于客户端自己做负载的。

    一句话介绍那就是Ribbon是Netflix开源的一款用于客户端负载均衡的工具软件。GitHub地址:https://github.com/Netflix/ribbon。

    Ribbon默认的策略是轮询,我们可以自定义负载策略来覆盖默认的,当然也可以通过配置指定使用哪些策略。

    Ribbon作为后端负载均衡器,比Nginx更注重的是承担并发而不是请求分发,可以直接感知后台动态变化来指定分发策略。它一共提供了7种负载均衡策略:

    配置application.yml

    1. server:
    2. port: 10005
    3. ribbon:
    4. NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
    5. eureka:
    6. client:
    7. service-url:
    8. defaultZone: http://localhost:10001/eureka/
    9. spring:
    10. application:
    11. name: service-B

    配置config

    1. @Bean
    2. @LoadBalanced
    3. RestTemplate restTemplate() {
    4. return new RestTemplate();
    5. }
    6. @Bean
    7. public IRule ribbonRule() {
    8. return new RandomRule();//这里配置策略,和配置文件对应
    9. }

    配置controller

    1. @RestController
    2. public class ConsumerController {
    3. @Autowired
    4. private RestTemplate restTemplate;
    5. @Autowired
    6. private LoadBalancerClient loadBalancerClient;
    7. @RequestMapping(value = "/add", method = RequestMethod.GET)
    8. public String add(@RequestParam Integer a,@RequestParam Integer b) {
    9. this.loadBalancerClient.choose("service-B");//随机访问策略
    10. return restTemplate.getForEntity("http://service-B/add?a="+a+"&b="+b, String.class).getBody();
    11. }
    12. }

  • 相关阅读:
    golang 反射机制
    Excel VSTO开发1-VSTO简介
    无线互动会议室方案的视频显示系统
    【C++入门到精通】C++入门 —— 红黑树(自平衡二叉搜索树)
    为何每个开发者都在谈论Go?
    MySQL的结构化语言 DDL DML DQL DCL
    springBoot中使用easyExcel导出
    Android APK打包的过程主要步骤
    go 并发
    【Spring】Spring的JdbcTemplate
  • 原文地址:https://blog.csdn.net/2301_77583506/article/details/136690398