本博客以深入理解Spring Cloud与实战[方剑/编著]一书进行学习和理解

如有侵权,请联系作者

  1. 什么是负载均衡

    是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载

  2. 为什么要使用负载均衡

    以达到最优化资源使用、最大化吞吐率、最小化响应时间,同时避免出现过载的目的。

  3. 如何实现负载均衡

    • 随机(Random)算法:在实例列表中随机选择某个实例
    • 轮询(RoundRobin)算法:按顺序选择实例
    • 最少连接数(Least Connections)算法:每次取连接数最少的实例
    • 一致性哈希(Consistent Hashing)算法:基于一致性哈希算法总是将相同参数的请求落在同一个实例上
    • 权重随机(Weigthd Random):随机取一个数,根据这个数属于哪个范围选择对应的实例

负载均衡

一、自定义负载均衡【基于OpenFeign】

OpenFeign只是一种Rest客户端,本身不具备任何的负载均衡操作。 OpenFeign底层调用的还是Netflix Ribbon负载均衡组件。

实现

@Configuration
// name为服务名
@RibbonClient(name = "my-provider", configuration = MyLoadBalanceConfiguration.class)
public class MyLoadBalanceConfiguration {

    @Bean
    public IRule ribbonRule() {
        return new RandomRule(); // 采用随机策略
    }
}

不同的情况返回不同的策略即可,或者返回自定义策略,就是这么简单

Logo

Authing 是一款以开发者为中心的全场景身份云产品,集成了所有主流身份认证协议,为企业和开发者提供完善安全的用户认证和访问管理服务

更多推荐