Modifier la règle de règle de chargement par défaut du ruban

Scènes

Dans Spring Cloud Gateway, une stratégie d'équilibrage de charge est ajoutée (la modification est la même). Dans la plupart des cas, elle est configurée avec "service.ribbon.NFLoadBalancerRuleClassName = IRule.class". Cette méthode ne concerne qu'un seul service, car notre les services sont relativement corrects.La configuration d'un seul service est trop lourde, je souhaite donc atteindre mon objectif en modifiant la configuration par défaut de Ribbon.

Programme

Retrouvez la documentation: https://docs.spring.io/spring-cloud-netflix/docs/2.2.5.RELEASE/reference/html/#spring-cloud-ribbon

Vous avez trouvé la balise @RibbonClients, qui est une modification de la configuration par défaut du ruban

La mise en œuvre est la suivante:

  • Créez une nouvelle configuration par défaut, définissez la méthode ribbonRule pour définir la règle de chargement par défaut, vous pouvez également utiliser les méthodes ribbonPing, ribbonServerList, serverListFilter pour configurer d'autres paramètres par défaut, sans oublier ici, veuillez explorer par vous-même.
    
    import com.lizz.gateway.loadbalancer.VersionRoundRobinRule;
    import com.netflix.client.config.IClientConfig;
    import com.netflix.loadbalancer.IRule;
    import org.springframework.beans.factory.annotation.Configurable;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    /**
     * @description: 调整ribbon默认配置
     * 原始默认org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration
     * @author: lizz
     */
    @Configuration(proxyBeanMethods = false)
    public class RibbonConfiguration {
        @Bean
        public IRule ribbonRule() {
            //自定义负载规则
            return new VersionRoundRobinRule();
        }
    }
    

     

  • Utilisez @RibbonClients pour activer la configuration par défaut du ruban
    import com.liubike.gateway.config.RibbonConfiguration;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.ribbon.RibbonClients;
    
    
    /**
     * 程序启动类
     *
     * @author: lizz
     */
    @SpringBootApplication
    @RibbonClients(defaultConfiguration = RibbonConfiguration.class)
    public class GatewayApplication {
        public static void main(String[] args) {
            SpringApplication.run(GatewayApplication.class, args);
        }
    }
     

Je suppose que tu aimes

Origine blog.csdn.net/lizz861109/article/details/110199142
conseillé
Classement