提交 76200320 编写于 作者: A Allen Wang

Moving classes from client to loadbalancer package.

上级 ca94e69f
......@@ -29,7 +29,9 @@ import com.netflix.client.config.CommonClientConfigKey;
import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.AbstractLoadBalancer;
import com.netflix.loadbalancer.AvailabilityFilteringRule;
import com.netflix.loadbalancer.ClientCallableProvider;
import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.loadbalancer.LoadBalancerExecutor;
import com.netflix.loadbalancer.LoadBalancerStats;
import com.netflix.loadbalancer.Server;
import com.netflix.loadbalancer.ServerStats;
......@@ -37,7 +39,8 @@ import com.netflix.servo.monitor.Monitors;
import com.netflix.servo.monitor.Stopwatch;
import com.netflix.servo.monitor.Timer;
import com.netflix.utils.RxUtils;
import static com.netflix.client.LoadBalancerExecutor.CallableToObservable.toObsevableProvider;
import static com.netflix.loadbalancer.LoadBalancerExecutor.CallableToObservable.toObsevableProvider;
/**
* Abstract class that provides the integration of client with load balancers.
......
package com.netflix.client;
package com.netflix.loadbalancer;
import com.netflix.loadbalancer.Server;
public interface ClientCallableProvider<T> {
......
package com.netflix.client;
package com.netflix.loadbalancer;
import rx.Observable;
import com.netflix.loadbalancer.Server;
public interface ClientObservableProvider<T> {
......
......@@ -15,11 +15,10 @@
* limitations under the License.
*
*/
package com.netflix.client;
package com.netflix.loadbalancer;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URLEncoder;
import java.util.concurrent.TimeUnit;
import javax.annotation.Nullable;
......@@ -28,6 +27,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.base.Strings;
import com.netflix.client.ClientException;
import com.netflix.client.ClientRequest;
import com.netflix.client.DefaultLoadBalancerRetryHandler;
import com.netflix.client.IClientConfigAware;
import com.netflix.client.RetryHandler;
import com.netflix.client.ClientException.ErrorType;
import com.netflix.client.config.CommonClientConfigKey;
import com.netflix.client.config.DefaultClientConfigImpl;
import com.netflix.client.config.IClientConfig;
......@@ -61,7 +66,7 @@ public class LoadBalancerContext implements IClientConfigAware {
protected RetryHandler errorHandler = new DefaultLoadBalancerRetryHandler();
boolean okToRetryOnAllOperations = DefaultClientConfigImpl.DEFAULT_OK_TO_RETRY_ON_ALL_OPERATIONS.booleanValue();
protected boolean okToRetryOnAllOperations = DefaultClientConfigImpl.DEFAULT_OK_TO_RETRY_ON_ALL_OPERATIONS.booleanValue();
private ILoadBalancer lb;
......
package com.netflix.client;
package com.netflix.loadbalancer;
import java.net.URI;
import java.util.concurrent.TimeUnit;
......@@ -13,13 +13,13 @@ import rx.Observable;
import rx.Observable.OnSubscribeFunc;
import rx.Observer;
import rx.Subscription;
import rx.functions.Func1;
import rx.subscriptions.Subscriptions;
import rx.util.functions.Func1;
import com.netflix.client.ClientException;
import com.netflix.client.DefaultLoadBalancerRetryHandler;
import com.netflix.client.RetryHandler;
import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.loadbalancer.Server;
import com.netflix.loadbalancer.ServerStats;
import com.netflix.servo.monitor.Stopwatch;
import com.netflix.utils.RxUtils;
......@@ -188,7 +188,7 @@ public class LoadBalancerExecutor extends LoadBalancerContext {
* of this {@link LoadBalancerExecutor} will be used.
* @param loadBalancerKey An optional key passed to the load balancer to determine which server to return.
*/
<T> Observable<T> executeWithLoadBalancer(final ClientObservableProvider<T> clientObservableProvider, @Nullable final URI loadBalancerURI,
protected <T> Observable<T> executeWithLoadBalancer(final ClientObservableProvider<T> clientObservableProvider, @Nullable final URI loadBalancerURI,
@Nullable final RetryHandler retryHandler, @Nullable final Object loadBalancerKey) {
OnSubscribeFunc<T> onSubscribe = new OnSubscribeFunc<T>() {
@Override
......@@ -209,7 +209,7 @@ public class LoadBalancerExecutor extends LoadBalancerContext {
return observable.onErrorResumeNext(retryNextServerFunc);
}
<T> Observable<T> retrySameServer(final Server server, final ClientObservableProvider<T> clientObservableProvider, final RetryHandler errorHandler) {
protected <T> Observable<T> retrySameServer(final Server server, final ClientObservableProvider<T> clientObservableProvider, final RetryHandler errorHandler) {
final ServerStats serverStats = getServerStats(server);
OnSubscribeFunc<T> onSubscribe = new OnSubscribeFunc<T>() {
@Override
......
......@@ -15,7 +15,7 @@
* limitations under the License.
*
*/
package com.netflix.client;
package com.netflix.loadbalancer;
import static org.junit.Assert.*;
......@@ -76,7 +76,7 @@ public class LoadBalancerContextTest {
@Test
public void testEncodedQuery() throws Exception {
String uri = "http://localhost:8080/resources/abc?";
String queryString = "name=" + URLEncoder.encode("éƎ&=*%!@#$%^&*()", "UTF-8");
String queryString = "name=" + URLEncoder.encode("????&=*%!@#$%^&*()", "UTF-8");
URI request = new URI(uri + queryString);
Server server = context.getServerFromLoadBalancer(request, null);
URI newURI = context.reconstructURIWithServer(server, request);
......
......@@ -4,10 +4,10 @@ import io.netty.handler.codec.http.HttpMethod;
import io.reactivex.netty.protocol.http.client.HttpClientRequest;
import io.reactivex.netty.protocol.http.client.RepeatableContentHttpRequest;
import com.netflix.client.LoadBalancerExecutor;
import com.netflix.client.RequestSpecificRetryHandler;
import com.netflix.client.RetryHandler;
import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.LoadBalancerExecutor;
import com.netflix.loadbalancer.Server;
import com.netflix.loadbalancer.ServerStats;
......
......@@ -40,12 +40,12 @@ import rx.Observer;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.netflix.client.ClientObservableProvider;
import com.netflix.client.LoadBalancerExecutor;
import com.netflix.client.config.CommonClientConfigKey;
import com.netflix.client.config.DefaultClientConfigImpl;
import com.netflix.client.config.IClientConfig;
import com.netflix.client.config.IClientConfigKey;
import com.netflix.loadbalancer.ClientObservableProvider;
import com.netflix.loadbalancer.LoadBalancerExecutor;
import com.netflix.loadbalancer.Server;
import com.netflix.serialization.TypeDef;
......
......@@ -23,11 +23,11 @@ import io.reactivex.netty.protocol.http.client.HttpClientResponse;
import io.reactivex.netty.protocol.http.client.RepeatableContentHttpRequest;
import rx.Observable;
import com.netflix.client.ClientObservableProvider;
import com.netflix.client.LoadBalancerExecutor;
import com.netflix.client.RetryHandler;
import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.ClientObservableProvider;
import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.loadbalancer.LoadBalancerExecutor;
import com.netflix.loadbalancer.Server;
public class NettyHttpLoadBalancingClient extends AbstractLoadBalancingClient {
......
......@@ -14,9 +14,9 @@ import io.reactivex.netty.protocol.http.client.HttpClient.HttpClientConfig;
import io.reactivex.netty.protocol.text.sse.ServerSentEvent;
import com.google.common.base.Preconditions;
import com.netflix.client.ClientObservableProvider;
import com.netflix.client.config.IClientConfig;
import com.netflix.client.config.IClientConfigKey;
import com.netflix.loadbalancer.ClientObservableProvider;
import com.netflix.loadbalancer.Server;
public class SSEClient extends AbstractNettyHttpClient<ServerSentEvent> {
......
......@@ -6,11 +6,11 @@ import io.reactivex.netty.protocol.http.client.RepeatableContentHttpRequest;
import io.reactivex.netty.protocol.text.sse.ServerSentEvent;
import rx.Observable;
import com.netflix.client.ClientObservableProvider;
import com.netflix.client.LoadBalancerExecutor;
import com.netflix.client.RetryHandler;
import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.ClientObservableProvider;
import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.loadbalancer.LoadBalancerExecutor;
import com.netflix.loadbalancer.Server;
public class SSELoadBalancingClient extends AbstractLoadBalancingClient {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册