• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java DefaultLoadBalancerRetryHandler类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.netflix.client.DefaultLoadBalancerRetryHandler的典型用法代码示例。如果您正苦于以下问题:Java DefaultLoadBalancerRetryHandler类的具体用法?Java DefaultLoadBalancerRetryHandler怎么用?Java DefaultLoadBalancerRetryHandler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



DefaultLoadBalancerRetryHandler类属于com.netflix.client包,在下文中一共展示了DefaultLoadBalancerRetryHandler类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: testRetryableStatusCodes

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
@Test
public void testRetryableStatusCodes() throws Exception {
	int sameServer = 3;
	int nextServer = 3;
	RibbonServer server = getRibbonServer();
	IClientConfig config = mock(IClientConfig.class);
	doReturn(sameServer).when(config).get(eq(CommonClientConfigKey.MaxAutoRetries), anyInt());
	doReturn(nextServer).when(config).get(eq(CommonClientConfigKey.MaxAutoRetriesNextServer), anyInt());
	doReturn(false).when(config).get(eq(CommonClientConfigKey.OkToRetryOnAllOperations), eq(false));
	doReturn(config).when(clientFactory).getClientConfig(eq(server.getServiceId()));
	doReturn("404, 418,502,foo, ,").when(config).getPropertyAsString(eq(RibbonLoadBalancedRetryPolicy.RETRYABLE_STATUS_CODES),eq(""));
	clientFactory.getLoadBalancerContext(server.getServiceId()).setRetryHandler(new DefaultLoadBalancerRetryHandler(config));
	RibbonLoadBalancerClient client = getRibbonLoadBalancerClient(server);
	RibbonLoadBalancedRetryPolicyFactory factory = new RibbonLoadBalancedRetryPolicyFactory(clientFactory);
	LoadBalancedRetryPolicy policy = factory.create(server.getServiceId(), client);
	HttpRequest request = mock(HttpRequest.class);
	doReturn(HttpMethod.GET).when(request).getMethod();
	assertThat(policy.retryableStatusCode(400), is(false));
	assertThat(policy.retryableStatusCode(404), is(true));
	assertThat(policy.retryableStatusCode(418), is(true));
	assertThat(policy.retryableStatusCode(502), is(true));
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-netflix,代码行数:23,代码来源:RibbonLoadBalancedRetryPolicyFactoryTests.java


示例2: initWithNiwsConfig

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
/**
 * Set necessary parameters from client configuration and register with Servo monitors.
 */
@Override
public void initWithNiwsConfig(IClientConfig clientConfig) {
    if (clientConfig == null) {
        return;    
    }
    clientName = clientConfig.getClientName();
    if (clientName == null) {
        clientName = "default";
    }
    vipAddresses = clientConfig.resolveDeploymentContextbasedVipAddresses();
    maxAutoRetries = clientConfig.getPropertyAsInteger(CommonClientConfigKey.MaxAutoRetries, DefaultClientConfigImpl.DEFAULT_MAX_AUTO_RETRIES);
    maxAutoRetriesNextServer = clientConfig.getPropertyAsInteger(CommonClientConfigKey.MaxAutoRetriesNextServer,maxAutoRetriesNextServer);

    okToRetryOnAllOperations = clientConfig.getPropertyAsBoolean(CommonClientConfigKey.OkToRetryOnAllOperations, okToRetryOnAllOperations);
    defaultRetryHandler = new DefaultLoadBalancerRetryHandler(clientConfig);
    
    tracer = getExecuteTracer();

    Monitors.registerObject("Client_" + clientName, this);
}
 
开发者ID:Netflix,项目名称:ribbon,代码行数:24,代码来源:LoadBalancerContext.java


示例3: testRuleClassName

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
@Test
public void testRuleClassName() {
  System.setProperty("cse.loadbalance.mytest1.NFLoadBalancerRuleClassName",
      "com.netflix.loadbalancer.RoundRobinRule");
  System.setProperty("cse.loadbalance.mytest2.NFLoadBalancerRuleClassName",
      "com.netflix.loadbalancer.WeightedResponseTimeRule");
  System.setProperty("cse.loadbalance.mytest3.NFLoadBalancerRuleClassName", "com.netflix.loadbalancer.RandomRule");
  System.setProperty("cse.loadbalance.mytest4.NFLoadBalancerRuleClassName",
      "org.apache.servicecomb.loadbalance.SessionStickinessRule");

  BeansHolder holder = new BeansHolder();
  List<ExtensionsFactory> extensionsFactories = new ArrayList<>();
  extensionsFactories.add(new RuleClassNameExtentionsFactory());
  extensionsFactories.add(new RuleNameExtentionsFactory());
  extensionsFactories.add(new DefaultRetryExtensionsFactory());
  Deencapsulation.setField(holder, "extentionsFactories", extensionsFactories);
  holder.init();

  Assert.assertEquals(RoundRobinRule.class.getName(),
      ExtensionsManager.createLoadBalancerRule("mytest1").getClass().getName());
  Assert.assertEquals(WeightedResponseTimeRule.class.getName(),
      ExtensionsManager.createLoadBalancerRule("mytest2").getClass().getName());
  Assert.assertEquals(RandomRule.class.getName(),
      ExtensionsManager.createLoadBalancerRule("mytest3").getClass().getName());
  Assert.assertEquals(SessionStickinessRule.class.getName(),
      ExtensionsManager.createLoadBalancerRule("mytest4").getClass().getName());

  System.getProperties().remove("cse.loadbalance.mytest1.NFLoadBalancerRuleClassName");
  System.getProperties().remove("cse.loadbalance.mytest2.NFLoadBalancerRuleClassName");
  System.getProperties().remove("cse.loadbalance.mytest3.NFLoadBalancerRuleClassName");
  System.getProperties().remove("cse.loadbalance.mytest4.NFLoadBalancerRuleClassName");

  Assert.assertEquals(DefaultLoadBalancerRetryHandler.class.getName(),
      ExtensionsManager.createRetryHandler("mytest1").getClass().getName());
}
 
开发者ID:apache,项目名称:incubator-servicecomb-java-chassis,代码行数:36,代码来源:TestExtensionsManager.java


示例4: create

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
@Override
public LBClient create(String clientName) {
    LBClient client = new LBClientFactory.Default().create(clientName);
    IClientConfig config = ClientFactory.getNamedConfig(clientName);
    client.setRetryHandler(new DefaultLoadBalancerRetryHandler(config));
    return client;
}
 
开发者ID:aatarasoff,项目名称:spring-cloud-marathon,代码行数:8,代码来源:RibbonMarathonClient.java


示例5: configureRetryHandler

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
@Bean
public RetryHandler configureRetryHandler() {
    // https://github.com/Netflix/ribbon/blob/master/ribbon-core/src/main/java/com/netflix/client/DefaultLoadBalancerRetryHandler.java
    // retrySameServer=0, retryNextServer=1, retryEnabled=true

    return new DefaultLoadBalancerRetryHandler(retrySameServer, retryNextServer, retryEnabled);
}
 
开发者ID:looztra,项目名称:my-awesome-guestbook,代码行数:8,代码来源:RetryHandlerConfiguration.java


示例6: testGetRetryPolicyNoRetry

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
@Test
public void testGetRetryPolicyNoRetry() throws Exception {
	int sameServer = 0;
	int nextServer = 0;
	boolean retryOnAllOps = false;
	RibbonServer server = getRibbonServer();
	IClientConfig config = mock(IClientConfig.class);
	doReturn(sameServer).when(config).get(eq(CommonClientConfigKey.MaxAutoRetries), anyInt());
	doReturn(sameServer).when(config).getPropertyAsInteger(eq(CommonClientConfigKey.MaxAutoRetries), anyInt());
	doReturn(nextServer).when(config).get(eq(CommonClientConfigKey.MaxAutoRetriesNextServer), anyInt());
	doReturn(nextServer).when(config).getPropertyAsInteger(eq(CommonClientConfigKey.MaxAutoRetriesNextServer), anyInt());
	doReturn(retryOnAllOps).when(config).get(eq(CommonClientConfigKey.OkToRetryOnAllOperations), anyBoolean());
	doReturn(retryOnAllOps).when(config).getPropertyAsBoolean(eq(CommonClientConfigKey.OkToRetryOnAllOperations), anyBoolean());
	doReturn("").when(config).getPropertyAsString(eq(RibbonLoadBalancedRetryPolicy.RETRYABLE_STATUS_CODES),eq(""));
	doReturn(server.getServiceId()).when(config).getClientName();
	doReturn(config).when(clientFactory).getClientConfig(eq(server.getServiceId()));
	clientFactory.getLoadBalancerContext(server.getServiceId()).setRetryHandler(new DefaultLoadBalancerRetryHandler(config));
	RibbonLoadBalancerClient client = getRibbonLoadBalancerClient(server);
	RibbonLoadBalancedRetryPolicyFactory factory = new RibbonLoadBalancedRetryPolicyFactory(clientFactory);
	LoadBalancedRetryPolicy policy = factory.create(server.getServiceId(), client);
	HttpRequest request = mock(HttpRequest.class);
	doReturn(HttpMethod.GET).when(request).getMethod();
	LoadBalancedRetryContext context = new LoadBalancedRetryContext(null, request);
	assertThat(policy.canRetryNextServer(context), is(true));
	assertThat(policy.canRetrySameServer(context), is(false));
	assertThat(policy.retryableStatusCode(400), is(false));
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-netflix,代码行数:28,代码来源:RibbonLoadBalancedRetryPolicyFactoryTests.java


示例7: testGetRetryPolicyNotGet

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
@Test
public void testGetRetryPolicyNotGet() throws Exception {
	int sameServer = 3;
	int nextServer = 3;
	boolean retryOnAllOps = false;
	RibbonServer server = getRibbonServer();
	IClientConfig config = mock(IClientConfig.class);
	doReturn(sameServer).when(config).get(eq(CommonClientConfigKey.MaxAutoRetries), anyInt());
	doReturn(sameServer).when(config).getPropertyAsInteger(eq(CommonClientConfigKey.MaxAutoRetries), anyInt());
	doReturn(nextServer).when(config).get(eq(CommonClientConfigKey.MaxAutoRetriesNextServer), anyInt());
	doReturn(nextServer).when(config).getPropertyAsInteger(eq(CommonClientConfigKey.MaxAutoRetriesNextServer), anyInt());
	doReturn(retryOnAllOps).when(config).get(eq(CommonClientConfigKey.OkToRetryOnAllOperations), anyBoolean());
	doReturn(retryOnAllOps).when(config).getPropertyAsBoolean(eq(CommonClientConfigKey.OkToRetryOnAllOperations), anyBoolean());
	doReturn("").when(config).getPropertyAsString(eq(RibbonLoadBalancedRetryPolicy.RETRYABLE_STATUS_CODES),eq(""));
	doReturn(server.getServiceId()).when(config).getClientName();
	doReturn(config).when(clientFactory).getClientConfig(eq(server.getServiceId()));
	clientFactory.getLoadBalancerContext(server.getServiceId()).setRetryHandler(new DefaultLoadBalancerRetryHandler(config));
	RibbonLoadBalancerClient client = getRibbonLoadBalancerClient(server);
	RibbonLoadBalancedRetryPolicyFactory factory = new RibbonLoadBalancedRetryPolicyFactory(clientFactory);
	LoadBalancedRetryPolicy policy = factory.create(server.getServiceId(), client);
	HttpRequest request = mock(HttpRequest.class);
	doReturn(HttpMethod.POST).when(request).getMethod();
	LoadBalancedRetryContext context = new LoadBalancedRetryContext(null, request);
	assertThat(policy.canRetryNextServer(context), is(false));
	assertThat(policy.canRetrySameServer(context), is(false));
	assertThat(policy.retryableStatusCode(400), is(false));
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-netflix,代码行数:28,代码来源:RibbonLoadBalancedRetryPolicyFactoryTests.java


示例8: setupClientForRetry

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
private RetryableRibbonLoadBalancingHttpClient setupClientForRetry(int retriesNextServer, int retriesSameServer,
																   boolean retryable, boolean retryOnAllOps,
																   String serviceName, String host, int port,
																   CloseableHttpClient delegate, ILoadBalancer lb, String statusCodes,
																   LoadBalancedBackOffPolicyFactory loadBalancedBackOffPolicyFactory,
																   boolean isSecure) throws Exception {
	ServerIntrospector introspector = mock(ServerIntrospector.class);
	RetryHandler retryHandler = new DefaultLoadBalancerRetryHandler(retriesSameServer, retriesNextServer, retryable);
	doReturn(new Server(host, port)).when(lb).chooseServer(eq(serviceName));
	DefaultClientConfigImpl clientConfig = new DefaultClientConfigImpl();
	clientConfig.set(CommonClientConfigKey.OkToRetryOnAllOperations, retryOnAllOps);
	clientConfig.set(CommonClientConfigKey.MaxAutoRetriesNextServer, retriesNextServer);
	clientConfig.set(CommonClientConfigKey.MaxAutoRetries, retriesSameServer);
	clientConfig.set(RibbonLoadBalancedRetryPolicy.RETRYABLE_STATUS_CODES, statusCodes);
	clientConfig.set(CommonClientConfigKey.IsSecure, isSecure);
	clientConfig.setClientName(serviceName);
	RibbonLoadBalancerContext context = new RibbonLoadBalancerContext(lb, clientConfig, retryHandler);
	SpringClientFactory clientFactory = mock(SpringClientFactory.class);
	doReturn(context).when(clientFactory).getLoadBalancerContext(eq(serviceName));
	doReturn(clientConfig).when(clientFactory).getClientConfig(eq(serviceName));
	LoadBalancedRetryPolicyFactory factory = new RibbonLoadBalancedRetryPolicyFactory(clientFactory);
	RetryableRibbonLoadBalancingHttpClient client = new RetryableRibbonLoadBalancingHttpClient(delegate, clientConfig,
			introspector, factory, loadBalancedBackOffPolicyFactory);
	client.setLoadBalancer(lb);
	ReflectionTestUtils.setField(client, "delegate", delegate);
	return client;
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-netflix,代码行数:28,代码来源:RibbonLoadBalancingHttpClientTests.java


示例9: testConfigureRetry

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
@Test
public void testConfigureRetry() {
	SpringClientFactory factory = new SpringClientFactory();
	AnnotationConfigApplicationContext parent = new AnnotationConfigApplicationContext(
			RibbonAutoConfiguration.class, ArchaiusAutoConfiguration.class, HttpClientConfiguration.class);
	addEnvironment(parent, "foo.ribbon.MaxAutoRetries:2");
	factory.setApplicationContext(parent);
	DefaultLoadBalancerRetryHandler retryHandler = (DefaultLoadBalancerRetryHandler) factory
			.getLoadBalancerContext("foo").getRetryHandler();
	assertEquals(2, retryHandler.getMaxRetriesOnSameServer());
	parent.close();
	factory.destroy();
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-netflix,代码行数:14,代码来源:SpringClientFactoryTests.java


示例10: okClient

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
@Bean
public OkHttpLoadBalancingClient okClient(IClientConfig config) {
	final OkHttpLoadBalancingClient client = new OkHttpLoadBalancingClient(config,
			new DefaultServerIntrospector());
	client.setLoadBalancer(new TestLoadBalancer<>());
	client.setRetryHandler(new DefaultLoadBalancerRetryHandler());
	return client;
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-netflix,代码行数:9,代码来源:OkHttpRibbonCommandIntegrationTests.java


示例11: RetryableFeignLoadBalancer

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
@Deprecated
//TODO remove in 2.0.x
public RetryableFeignLoadBalancer(ILoadBalancer lb, IClientConfig clientConfig,
						 ServerIntrospector serverIntrospector, LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory) {
	super(lb, clientConfig, serverIntrospector);
	this.loadBalancedRetryPolicyFactory = loadBalancedRetryPolicyFactory;
	this.setRetryHandler(new DefaultLoadBalancerRetryHandler(clientConfig));
	this.loadBalancedBackOffPolicyFactory = new LoadBalancedBackOffPolicyFactory.NoBackOffPolicyFactory();
	this.loadBalancedRetryListenerFactory = new LoadBalancedRetryListenerFactory.DefaultRetryListenerFactory();
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-netflix,代码行数:11,代码来源:RetryableFeignLoadBalancer.java


示例12: createRetryHandler

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
public RetryHandler createRetryHandler(String retryName, String microservice) {
  RetryHandler handler = new DefaultLoadBalancerRetryHandler(
      Configuration.INSTANCE.getRetryOnSame(microservice),
      Configuration.INSTANCE.getRetryOnNext(microservice), true);
  return handler;
}
 
开发者ID:apache,项目名称:incubator-servicecomb-java-chassis,代码行数:7,代码来源:DefaultRetryExtensionsFactory.java


示例13: retryHandler

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
@Bean
@ConditionalOnMissingBean
public RetryHandler retryHandler(IClientConfig config) {
	return new DefaultLoadBalancerRetryHandler(config);
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-netflix,代码行数:6,代码来源:RibbonClientConfiguration.java


示例14: testGetRetryPolicyRetryCount

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
@Test
public void testGetRetryPolicyRetryCount() throws Exception {
	int sameServer = 3;
	int nextServer = 3;
	RibbonServer server = getRibbonServer();
	IClientConfig config = mock(IClientConfig.class);
	doReturn(sameServer).when(config).get(eq(CommonClientConfigKey.MaxAutoRetries), anyInt());
	doReturn(nextServer).when(config).get(eq(CommonClientConfigKey.MaxAutoRetriesNextServer), anyInt());
	doReturn(false).when(config).get(eq(CommonClientConfigKey.OkToRetryOnAllOperations), eq(false));
	doReturn(config).when(clientFactory).getClientConfig(eq(server.getServiceId()));
	doReturn("").when(config).getPropertyAsString(eq(RibbonLoadBalancedRetryPolicy.RETRYABLE_STATUS_CODES),eq(""));
	clientFactory.getLoadBalancerContext(server.getServiceId()).setRetryHandler(new DefaultLoadBalancerRetryHandler(config));
	RibbonLoadBalancerClient client = getRibbonLoadBalancerClient(server);
	RibbonLoadBalancedRetryPolicyFactory factory = new RibbonLoadBalancedRetryPolicyFactory(clientFactory);
	LoadBalancedRetryPolicy policy = factory.create(server.getServiceId(), client);
	HttpRequest request = mock(HttpRequest.class);
	doReturn(HttpMethod.GET).when(request).getMethod();
	LoadBalancedRetryContext context = spy(new LoadBalancedRetryContext(null, request));
	//Loop through as if we are retrying a request until we exhaust the number of retries
	//outer loop is for next server retries
	//inner loop is for same server retries
	for(int i = 0; i < nextServer + 1; i++) {
		//iterate once time beyond the same server retry limit to cause us to reset
		//the same sever counter and increment the next server counter
		for(int j = 0; j < sameServer + 1; j++) {
			if(j < 3) {
				assertThat(policy.canRetrySameServer(context), is(true));
			} else {
				assertThat(policy.canRetrySameServer(context), is(false));
			}
			policy.registerThrowable(context, new IOException());
		}
		if(i < 3) {
			assertThat(policy.canRetryNextServer(context), is(true));
		} else {
			assertThat(policy.canRetryNextServer(context), is(false));
		}
	}
	assertThat(context.isExhaustedOnly(), is(true));
	assertThat(policy.retryableStatusCode(400), is(false));
	verify(context, times(4)).setServiceInstance(any(ServiceInstance.class));
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-netflix,代码行数:43,代码来源:RibbonLoadBalancedRetryPolicyFactoryTests.java


示例15: getDefaultRetryHandlerWithConfig

import com.netflix.client.DefaultLoadBalancerRetryHandler; //导入依赖的package包/类
private static RetryHandler getDefaultRetryHandlerWithConfig(IClientConfig config) {
    return new DefaultLoadBalancerRetryHandler(config);
}
 
开发者ID:Netflix,项目名称:ribbon,代码行数:4,代码来源:RibbonTransport.java



注:本文中的com.netflix.client.DefaultLoadBalancerRetryHandler类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java PortalUUIDUtil类代码示例发布时间:2022-05-23
下一篇:
Java FieldSignature类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap