美文网首页
Spring Cloud Netflix—客户端负载平衡器:Ri

Spring Cloud Netflix—客户端负载平衡器:Ri

作者: 嘻嘻哈哈1155 | 来源:发表于2018-03-06 14:14 被阅读0次

    Ribbon是一个客户端负载均衡器,它可以很好地控制HTTP和TCP客户端的行为。Feign已经使用Ribbon,所以如果您使用@FeignClient,则本节也适用。

    Ribbon中的中心概念是指定客户端的概念。每个负载平衡器是组合的组合的一部分,它们一起工作以根据需要联系远程服务器,并且集合具有您将其作为应用程序开发人员(例如使用@FeignClient注释)的名称。Spring Cloud使用RibbonClientConfiguration为每个命名的客户端根据需要创建一个新的合奏作为ApplicationContext。这包含(除其他外)ILoadBalancer,RestClient和ServerListFilter。

    如何加入Ribbon

    要在项目中包含Ribbon,请使用组org.springframework.cloud和工件IDspring-cloud-starter-ribbon的起始器。有关使用当前的Spring Cloud发布列表设置构建系统的详细信息,请参阅Spring Cloud项目页面

    自定义Ribbon客户端

    您可以使用.ribbon.*中的外部属性来配置Ribbon客户端的某些位,这与使用Netflix API本身没有什么不同,只能使用Spring Boot配置文件。本机选项可以在CommonClientConfigKey(功能区内核心部分)中作为静态字段进行检查。

    Spring Cloud还允许您通过使用@RibbonClient声明其他配置(位于RibbonClientConfiguration之上)来完全控制客户端。例:

    @Configuration

    @RibbonClient(name = "foo", configuration = FooConfiguration.class)

    public class TestConfiguration {

    }

    在这种情况下,客户端由RibbonClientConfiguration中已经存在的组件与FooConfiguration中的任何组件组成(后者通常会覆盖前者)。

    警告FooConfiguration必须是@Configuration,但请注意,它不在主应用程序上下文的@ComponentScan中,否则将由所有@RibbonClients共享。如果您使用@ComponentScan(或@SpringBootApplication),则需要采取措施避免包含(例如将其放在一个单独的,不重叠的包中,或者指定要在@ComponentScan)。

    Spring Cloud Netflix默认情况下为Ribbon(BeanTypebeanName:ClassName)提供以下bean:

    IClientConfigribbonClientConfig:DefaultClientConfigImpl

    IRuleribbonRule:ZoneAvoidanceRule

    IPingribbonPing:NoOpPing

    ServerListribbonServerList:ConfigurationBasedServerList

    ServerListFilterribbonServerListFilter:ZonePreferenceServerListFilter

    ILoadBalancerribbonLoadBalancer:ZoneAwareLoadBalancer

    ServerListUpdaterribbonServerListUpdater:PollingServerListUpdater

    创建一个类型的bean并将其放置在@RibbonClient配置(例如上面的FooConfiguration)中)允许您覆盖所描述的每个bean。例:

    @Configuration

    public class FooConfiguration {

        @Bean

        public IPing ribbonPing(IClientConfig config) {

            return new PingUrl();

        }

    }

    这用PingUrl代替NoOpPing。

    源码来源

    相关文章

      网友评论

          本文标题:Spring Cloud Netflix—客户端负载平衡器:Ri

          本文链接:https://www.haomeiwen.com/subject/tholfftx.html