第282章 Ribbon コンポーネント

Camel バージョン 2.18 以降で利用可能

Ribbon コンポーネントは、クライアント側の負荷分散に Netflix リボンを使用できるようにします。

Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-ribbon</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

このコンポーネントは、ServiceCall EIP を使用するときに、クライアント側で負荷分散機能を適用するのに役立ちます。

282.1. 設定

  • プログラマティック

    RibbonConfiguration configuration = new RibbonConfiguration();
    configuration.addProperties("ServerListRefreshInterval", "250");
    
    RibbonLoadBalancer loadBalancer = new RibbonLoadBalancer(configuration);
    
    from("direct:start")
        .serviceCall()
            .name("myService")
            .loadBalancer(loadBalancer)
            .consulServiceDiscovery()
            .end()
        .to("mock:result");
  • Spring Boot

    application.properties

    camel.cloud.ribbon.properties[ServerListRefreshInterval] = 250

    routes

    from("direct:start")
        .serviceCall()
            .name("myService")
            .ribbonLoadBalancer()
            .consulServiceDiscovery()
            .end()
        .to("mock:result");

  • XML

    <route>
        <from uri="direct:start"/>
        <serviceCall name="myService">
            <!-- enable ribbon load balancer -->
            <ribbonLoadBalancer>
                <properties key="ServerListRefreshInterval" value="250"/>
            </ribbonLoadBalancer>
        </serviceCall>
    </route>