2017-10-26 5 views
0

ランタイムの前にエンドポイントの量を知らなくてもラクダルートで負荷バランスを取ることは可能ですか?ロードバランサのエンドポイントの量を知らないラクダ

例として、特定の着信要求が特定のサーバーに負荷分散されており、サーバーが構成されています。

.loadBalance().failover().to()to()エンドポイントの量を動的に設定するにはどうすればよいですか?

私はtoD()でそれを試して、カンマ区切りのエンドポイントの文字列を送信しましたが、要求をすべてのサーバーに送信し、負荷分散はしません。

答えて

0

これを行うには、Java DSLを使用する必要があります。このルートがtoDefs開始されるとリクエストBは、エンドポイントAとCを持っていながら、Aは、エンドポイントAとBを持っている例要求を再起動せずに変更することはできないとして、私は、しかし、すべてのインバウンド要求が異なるエンドポイントを持って、これを試してみました

//Setup dynamic list of endpoints 
List<String> toDefs = new ArrayList<String>(); 
toDefs.add("mock:a"); 
toDefs.add("mock:b"); 

//We need to modify the definition, so get the reference 
LoadBalanceDefinition loadBalanceDefinition = 
    from("dirct:start") 
    .loadBalance() 
    .failover(); 

//Dynamically add the list of endpoints   
for (String toDef: toDefs){ 
    loadBalanceDefinition = loadBalanceDefinition.to(toDef); 
} 

//Finalize the route    
loadBalanceDefinition.to("direct:end"); 
+0

ルート。ルートの開始と停止は実行可能ですか?これはCXFRSインバウンド要求にあります。 – Asiriel

+0

停止/開始は非常に高コストです。この作業を手作業でやっているような気がします。 –

関連する問題