Skip to content
Merged
Prev Previous commit
Next Next commit
Add BlockingLoadBalancedRetryFactory
  • Loading branch information
OlgaMaciaszek committed Sep 22, 2020
commit 08d6fd86df76d09bb3a2559aacb76293ca37d288
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package org.springframework.cloud.loadbalancer.blocking.retry;

import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryFactory;
import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicy;
import org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser;
import org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerProperties;

/**
* @author Olga Maciaszek-Sharma
*/
public class BlockingLoadBalancedRetryFactory implements LoadBalancedRetryFactory {

private final LoadBalancerProperties.Retry retryProperties;

public BlockingLoadBalancedRetryFactory(LoadBalancerProperties properties) {
retryProperties = properties.getRetry();
}

@Override
public LoadBalancedRetryPolicy createRetryPolicy(String serviceId, ServiceInstanceChooser serviceInstanceChooser) {
return new BlockingLoadBalancedRetryPolicy(serviceId, serviceInstanceChooser, retryProperties);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryContext;
import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicy;
import org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser;
import org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerProperties;
import org.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClient;
import org.springframework.http.HttpMethod;
Expand All @@ -32,17 +33,17 @@
public class BlockingLoadBalancedRetryPolicy implements LoadBalancedRetryPolicy {

private final LoadBalancerProperties.Retry retryProperties;
private final BlockingLoadBalancerClient loadBalancerClient;
private final ServiceInstanceChooser loadBalancerClient;
private final String serviceId;
private int sameServerCount = 0;
private int nextServerCount = 0;

public BlockingLoadBalancedRetryPolicy(String serviceId,
BlockingLoadBalancerClient loadBalancerClient,
LoadBalancerProperties properties) {
ServiceInstanceChooser loadBalancerClient,
LoadBalancerProperties.Retry retryProperties) {
this.serviceId = serviceId;
this.loadBalancerClient = loadBalancerClient;
this.retryProperties = properties.getRetry();
this.retryProperties = retryProperties;
}

public boolean canRetry(LoadBalancedRetryContext context) {
Expand Down