SpringCloud Ribbon(四)之全局配置与服务配置

本文详细介绍了如何通过全局配置@RibbonClients注解实现Ribbon的默认设置,并区分了单个服务的Ribbon配置,涵盖了负载均衡策略、负载均衡器、IPing、服务列表和过滤器的配置过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Ribbon全局配置

@RibbonClients注解配置导入全局Ribbon客户端默认设置

public class GlobalRibbonConfig {

    //负载均衡策略
    @Bean
    public IRule rule() {
        return new MicroServiceLoadBalanceRule();
    }

    //负载均衡器
    @Bean
    public <E extends Server> ILoadBalancer loadBalancer(IClientConfig config, ServerList<E> serverList, ServerListFilter<E> serverListFilter, IRule rule, IPing ping, ServerListUpdater serverListUpdater) {

        return new MicroServiceLoadBalancer<>(config, rule, ping, serverList, serverListFilter, serverListUpdater);
    }

    //IPing
    @Bean
    public IPing iping() {
        return new DummyPing();
    }

    //服务列表
    @Bean
    public ServerList<NacosServer> serverList(NacosDiscoveryProperties properties) {
        return new NacosServerList(properties);
    }

    //服务列表过滤器
    @Bean
    public ServerListSubsetFilter serverListFilter() {
        ServerListSubsetFilter filter = new ServerListSubsetFilter();
        return filter;
    }

}

@RibbonClients(defaultConfiguration = GlobalRibbonConfig.class)
public class GlobalRibbonClientConfig {
    
}

 

二、单个服务Ribbon配置

@RibbonClient配置导入单个服务ribbon客户端配置

public class MicroRibbonConfig {

    @Bean
    public IPing iping() {

        return new DummyPing();
    }

    @Bean
    public <E extends Server> ILoadBalancer loadBalancer(IClientConfig config, ServerList<E> serverList, ServerListFilter<E> serverListFilter, IRule rule, IPing ping, ServerListUpdater serverListUpdater) {

        return new MicroServiceLoadBalancer<E>(config, rule, ping, serverList,
                serverListFilter, serverListUpdater);
    }

    @Bean
    public IRule rule() {

        return new MicroServiceLoadBalanceRule();
    }

    //服务列表
    @Bean
    public ServerList<NacosServer> serverList(NacosDiscoveryProperties properties) {
        return new NacosServerList(properties);
    }

    //服务列表过滤器
    @Bean
    public ServerListSubsetFilter serverListFilter() {
        ServerListSubsetFilter filter = new ServerListSubsetFilter();
        return filter;
    }
}


@RibbonClient(name = "micro-service", configuration = MicroRibbonConfig.class)
public class RibbonClientConfig {

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值