spring cloud gateway 负载均衡流程

Posted soft.push("zzq")

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring cloud gateway 负载均衡流程相关的知识,希望对你有一定的参考价值。

网关被扫描后会注册四个核心配置类,当然在配置类中仍然有各种流程中需要的bean后面会详细解释。

l  GatewayAutoConfiguration  网关基础配置类,当中承载着核心的配置逻辑

l  GatewayClassPathWarningAutoConfiguration  网关类加载配置类,就是用于校验是否加载的时webFlux依赖,而不是普通的web依赖。

l  GatewayLoadBalancerClientAutoConfiguration  网关客户端负载均衡配置类

l  GatewayRedisAutoConfiguration   网关限流器配置类

我们先回过头,假如你已经搭建了一个gateway的demo,那么在网关中进行负载均衡,会添加注解如下:

@RibbonClient(name = "pay-server", configuration = {IRule2.class})

@Configuration
@ConditionalOnClass({LoadBalancerClient.class, RibbonAutoConfiguration.class, DispatcherHandler.class})
@AutoConfigureAfter(RibbonAutoConfiguration.class)
public class GatewayLoadBalancerClientAutoConfiguration {

    // GlobalFilter beans

    @Bean
    @ConditionalOnBean(LoadBalancerClient.class)
    public LoadBalancerClientFilter loadBalancerClientFilter(LoadBalancerClient client) {
        return new LoadBalancerClientFilter(client);
    }

}
RibbonClientConfigurationRegistrar
private void registerClientConfiguration(BeanDefinitionRegistry registry,
            Object name, Object configuration) {
        BeanDefinitionBuilder builder = BeanDefinitionBuilder
                .genericBeanDefinition(RibbonClientSpecification.class);
        builder.addConstructorArgValue(name);
        builder.addConstructorArgValue(configuration);
        registry.registerBeanDefinition(name + ".RibbonClientSpecification",
                builder.getBeanDefinition());
    }

 

以上是关于spring cloud gateway 负载均衡流程的主要内容,如果未能解决你的问题,请参考以下文章

spring cloud gateway 负载均衡流程

spring cloud gateway 负载均衡流程

Spring Cloud Gateway——2020.x以上版本HTTP 503 或 NoLoadBalancer[负载均衡]解决方案

Spring Cloud Gateway——2020.x以上版本HTTP 503 或 NoLoadBalancer[负载均衡]解决方案

Spring Cloud Gateway——2020.x以上版本HTTP 503 或 NoLoadBalancer[负载均衡]解决方案

Spring Cloud Gateway整合Nacos实现服务路由及集群负载均衡