com.netflix.client.config.DefaultClientConfigImpl Java Examples
The following examples show how to use
com.netflix.client.config.DefaultClientConfigImpl.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ConfigurationBasedServerListTest.java From ribbon with Apache License 2.0 | 6 votes |
@Test public void testList() { ConfigurationBasedServerList list = new ConfigurationBasedServerList(); DefaultClientConfigImpl config = DefaultClientConfigImpl.getClientConfigWithDefaultValues("junit1"); list.initWithNiwsConfig(config); assertTrue(list.getInitialListOfServers().isEmpty()); ConfigurationManager.getConfigInstance().setProperty("junit1.ribbon.listOfServers", "abc.com:80,microsoft.com,1.2.3.4:8080"); List<Server> servers = list.getUpdatedListOfServers(); List<Server> expected = new ArrayList<Server>(); expected.add(new Server("abc.com:80")); expected.add(new Server("microsoft.com:80")); expected.add(new Server("1.2.3.4:8080")); assertEquals(expected, servers); ConfigurationManager.getConfigInstance().setProperty("junit1.ribbon.listOfServers", ""); assertTrue(list.getUpdatedListOfServers().isEmpty()); ConfigurationManager.getConfigInstance().clearProperty("junit1.ribbon.listOfServers"); assertTrue(list.getUpdatedListOfServers().isEmpty()); }
Example #2
Source File: LoadBalancingRxClientWithPoolOptions.java From ribbon with Apache License 2.0 | 6 votes |
public LoadBalancingRxClientWithPoolOptions(ILoadBalancer lb, IClientConfig config, RetryHandler retryHandler, PipelineConfigurator<O, I> pipelineConfigurator, ScheduledExecutorService poolCleanerScheduler) { super(lb, config, retryHandler, pipelineConfigurator); poolEnabled = config.get(CommonClientConfigKey.EnableConnectionPool, DefaultClientConfigImpl.DEFAULT_ENABLE_CONNECTION_POOL); if (poolEnabled) { this.poolCleanerScheduler = poolCleanerScheduler; int maxTotalConnections = config.get(IClientConfigKey.Keys.MaxTotalConnections, DefaultClientConfigImpl.DEFAULT_MAX_TOTAL_CONNECTIONS); int maxConnections = config.get(Keys.MaxConnectionsPerHost, DefaultClientConfigImpl.DEFAULT_MAX_CONNECTIONS_PER_HOST); MaxConnectionsBasedStrategy perHostStrategy = new DynamicPropertyBasedPoolStrategy(maxConnections, config.getClientName() + "." + config.getNameSpace() + "." + CommonClientConfigKey.MaxConnectionsPerHost); globalStrategy = new DynamicPropertyBasedPoolStrategy(maxTotalConnections, config.getClientName() + "." + config.getNameSpace() + "." + CommonClientConfigKey.MaxTotalConnections); poolStrategy = new CompositePoolLimitDeterminationStrategy(perHostStrategy, globalStrategy); idleConnectionEvictionMills = config.get(Keys.ConnIdleEvictTimeMilliSeconds, DefaultClientConfigImpl.DEFAULT_CONNECTIONIDLE_TIME_IN_MSECS); } }
Example #3
Source File: RetryTest.java From ribbon with Apache License 2.0 | 6 votes |
@Test public void testThrottledWithRetryNextServer() throws Exception { int connectionCount = connectionPoolManager.getConnectionsInPool(); URI localUrl = new URI("/status?code=503"); HttpRequest request = HttpRequest.newBuilder().uri(localUrl).build(); try { client.executeWithLoadBalancer(request, DefaultClientConfigImpl.getEmptyConfig().set(CommonClientConfigKey.MaxAutoRetriesNextServer, 2)); fail("Exception expected"); } catch (ClientException e) { // NOPMD } assertEquals(3, lb.getLoadBalancerStats().getSingleServerStat(localServer).getSuccessiveConnectionFailureCount()); System.out.println("Initial connections count " + connectionCount); System.out.println("Final connections count " + connectionPoolManager.getConnectionsInPool()); // should be no connection leak assertTrue(connectionPoolManager.getConnectionsInPool() <= connectionCount + 1); }
Example #4
Source File: NettyClientTest.java From ribbon with Apache License 2.0 | 6 votes |
@Test public void testPostWithByteBuf() throws Exception { Person myPerson = new Person("netty", 5); ObjectMapper mapper = new ObjectMapper(); byte[] raw = mapper.writeValueAsBytes(myPerson); ByteBuf buffer = Unpooled.copiedBuffer(raw); HttpClientRequest<ByteBuf> request = HttpClientRequest.createPost(SERVICE_URI + "testAsync/person") .withHeader("Content-type", "application/json") .withHeader("Content-length", String.valueOf(raw.length)) .withContent(buffer); LoadBalancingHttpClient<ByteBuf, ByteBuf> observableClient = RibbonTransport.newHttpClient( DefaultClientConfigImpl.getClientConfigWithDefaultValues().set(CommonClientConfigKey.ReadTimeout, 10000)); Observable<HttpClientResponse<ByteBuf>> response = observableClient.submit(request); Person person = getPersonObservable(response).toBlocking().single(); assertEquals(myPerson, person); }
Example #5
Source File: EurekaDynamicServerListLoadBalancerTest.java From ribbon with Apache License 2.0 | 6 votes |
@Before public void setUp() { PowerMock.mockStatic(DiscoveryClient.class); EasyMock .expect(DiscoveryClient.getZone(EasyMock.isA(InstanceInfo.class))) .andReturn("zone") .anyTimes(); eurekaClientMock = setUpEurekaClientMock(servers); eurekaClientProvider = new Provider<EurekaClient>() { @Override public EurekaClient get() { return eurekaClientMock; } }; config = DefaultClientConfigImpl.getClientConfigWithDefaultValues(); config.set(CommonClientConfigKey.DeploymentContextBasedVipAddresses, vipAddress); config.set(CommonClientConfigKey.ServerListUpdaterClassName, EurekaNotificationServerListUpdater.class.getName()); }
Example #6
Source File: DiscoveryEnabledLoadBalancerSupportsPortOverrideTest.java From ribbon with Apache License 2.0 | 6 votes |
@Test public void testSecureVipPortCanBeOverriden() throws Exception{ ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testSecureVipPortCanBeOverriden.ribbon.DeploymentContextBasedVipAddresses", "secureDummy"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testSecureVipPortCanBeOverriden.ribbon.IsSecure", "true"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testSecureVipPortCanBeOverriden.ribbon.SecurePort", "6002"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testSecureVipPortCanBeOverriden.ribbon.TargetRegion", "region"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testSecureVipPortCanBeOverriden.ribbon.NIWSServerListClassName", DiscoveryEnabledNIWSServerList.class.getName()); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testSecureVipPortCanBeOverriden.ribbon.ForceClientPortConfiguration", "true"); DiscoveryEnabledNIWSServerList deList = new DiscoveryEnabledNIWSServerList(); DefaultClientConfigImpl clientConfig = DefaultClientConfigImpl.class.newInstance(); clientConfig.loadProperties("DiscoveryEnabled.testSecureVipPortCanBeOverriden"); deList.initWithNiwsConfig(clientConfig); List<DiscoveryEnabledServer> serverList = deList.getInitialListOfServers(); Assert.assertEquals(1, serverList.size()); Assert.assertEquals(8002, serverList.get(0).getPort()); // vip indicated Assert.assertEquals(8002, serverList.get(0).getInstanceInfo().getPort()); // vip indicated Assert.assertEquals(6002, serverList.get(0).getInstanceInfo().getSecurePort()); // client property indicated }
Example #7
Source File: DiscoveryEnabledLoadBalancerSupportsPortOverrideTest.java From ribbon with Apache License 2.0 | 6 votes |
@Test public void testVipPortCanBeOverriden() throws Exception{ ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testVipPortCanBeOverriden.ribbon.DeploymentContextBasedVipAddresses", "dummy"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testVipPortCanBeOverriden.ribbon.IsSecure", "false"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testVipPortCanBeOverriden.ribbon.Port", "6001"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testVipPortCanBeOverriden.ribbon.TargetRegion", "region"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testVipPortCanBeOverriden.ribbon.NIWSServerListClassName", DiscoveryEnabledNIWSServerList.class.getName()); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testVipPortCanBeOverriden.ribbon.ForceClientPortConfiguration", "true"); DiscoveryEnabledNIWSServerList deList = new DiscoveryEnabledNIWSServerList(); DefaultClientConfigImpl clientConfig = DefaultClientConfigImpl.class.newInstance(); clientConfig.loadProperties("DiscoveryEnabled.testVipPortCanBeOverriden"); deList.initWithNiwsConfig(clientConfig); List<DiscoveryEnabledServer> serverList = deList.getInitialListOfServers(); Assert.assertEquals(1, serverList.size()); Assert.assertEquals(6001, serverList.get(0).getPort()); // client property indicated Assert.assertEquals(6001, serverList.get(0).getInstanceInfo().getPort()); // client property indicated Assert.assertEquals(7002, serverList.get(0).getInstanceInfo().getSecurePort()); // 7002 is the secure default }
Example #8
Source File: DiscoveryEnabledLoadBalancerSupportsPortOverrideTest.java From ribbon with Apache License 2.0 | 6 votes |
@Test public void testDefaultHonorsVipSecurePortDefinition() throws Exception{ ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testDefaultHonorsVipSecurePortDefinition.ribbon.DeploymentContextBasedVipAddresses", "secureDummy"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testDefaultHonorsVipSecurePortDefinition.ribbon.IsSecure", "true"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testDefaultHonorsVipSecurePortDefinition.ribbon.SecurePort", "6002"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testDefaultHonorsVipSecurePortDefinition.ribbon.TargetRegion", "region"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testDefaultHonorsVipSecurePortDefinition.ribbon.NIWSServerListClassName", DiscoveryEnabledNIWSServerList.class.getName()); DiscoveryEnabledNIWSServerList deList = new DiscoveryEnabledNIWSServerList(); DefaultClientConfigImpl clientConfig = DefaultClientConfigImpl.class.newInstance(); clientConfig.loadProperties("DiscoveryEnabled.testDefaultHonorsVipSecurePortDefinition"); deList.initWithNiwsConfig(clientConfig); List<DiscoveryEnabledServer> serverList = deList.getInitialListOfServers(); Assert.assertEquals(1, serverList.size()); Assert.assertEquals(8002, serverList.get(0).getPort()); // vip indicated Assert.assertEquals(8002, serverList.get(0).getInstanceInfo().getPort()); // vip indicated Assert.assertEquals(7002, serverList.get(0).getInstanceInfo().getSecurePort()); // 7002 is the secure default }
Example #9
Source File: DiscoveryEnabledLoadBalancerSupportsPortOverrideTest.java From ribbon with Apache License 2.0 | 6 votes |
@Test public void testDefaultHonorsVipPortDefinition() throws Exception{ ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testDefaultHonorsVipPortDefinition.ribbon.DeploymentContextBasedVipAddresses", "dummy"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testDefaultHonorsVipPortDefinition.ribbon.IsSecure", "false"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testDefaultHonorsVipPortDefinition.ribbon.Port", "6999"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testDefaultHonorsVipPortDefinition.ribbon.TargetRegion", "region"); ConfigurationManager.getConfigInstance().setProperty("DiscoveryEnabled.testDefaultHonorsVipPortDefinition.ribbon.NIWSServerListClassName", DiscoveryEnabledNIWSServerList.class.getName()); DiscoveryEnabledNIWSServerList deList = new DiscoveryEnabledNIWSServerList(); DefaultClientConfigImpl clientConfig = DefaultClientConfigImpl.class.newInstance(); clientConfig.loadProperties("DiscoveryEnabled.testDefaultHonorsVipPortDefinition"); deList.initWithNiwsConfig(clientConfig); List<DiscoveryEnabledServer> serverList = deList.getInitialListOfServers(); Assert.assertEquals(1, serverList.size()); Assert.assertEquals(8001, serverList.get(0).getPort()); // vip indicated Assert.assertEquals(8001, serverList.get(0).getInstanceInfo().getPort()); // vip indicated Assert.assertEquals(7002, serverList.get(0).getInstanceInfo().getSecurePort()); // 7002 is the secure default }
Example #10
Source File: DynamicServerListLoadBalancerTest.java From ribbon with Apache License 2.0 | 6 votes |
@Test public void testDynamicServerListLoadBalancer() throws Exception { DefaultClientConfigImpl config = DefaultClientConfigImpl.getClientConfigWithDefaultValues(); config.set(CommonClientConfigKey.NIWSServerListClassName, MyServerList.class.getName()); config.set(CommonClientConfigKey.NFLoadBalancerClassName, DynamicServerListLoadBalancer.class.getName()); config.set(CommonClientConfigKey.ServerListRefreshInterval, 50); DynamicServerListLoadBalancer<Server> lb = new DynamicServerListLoadBalancer<Server>(config); try { assertTrue(MyServerList.latch.await(2, TimeUnit.SECONDS)); } catch (InterruptedException e) { // NOPMD } assertEquals(lb.getAllServers(), MyServerList.list); lb.stopServerListRefreshing(); Thread.sleep(1000); int count = MyServerList.counter.get(); assertTrue(count >= 5); Thread.sleep(1000); assertEquals(count, MyServerList.counter.get()); }
Example #11
Source File: ExecutionContextTest.java From ribbon with Apache License 2.0 | 6 votes |
@Test public void testSubContext() { ExecutionContext<String> context = new ExecutionContext<String>("hello", DefaultClientConfigImpl.getEmptyConfig(), DefaultClientConfigImpl.getClientConfigWithDefaultValues(), RetryHandler.DEFAULT); ExecutionContext<String> subContext1 = context.getChildContext("foo"); ExecutionContext<String> subContext2 = context.getChildContext("bar"); assertSame(context, context.getGlobalContext()); context.put("dummy", "globalValue"); context.put("dummy2", "globalValue"); subContext1.put("dummy", "context1Value"); subContext2.put("dummy", "context2Value"); assertEquals("context1Value", subContext1.get("dummy")); assertEquals("context2Value", subContext2.get("dummy")); assertEquals("globalValue", subContext1.getGlobalContext().get("dummy")); assertNull(subContext1.get("dummy2")); }
Example #12
Source File: LoadBalancingTcpClient.java From ribbon with Apache License 2.0 | 6 votes |
@Override protected RxClient<I, O> createRxClient(Server server) { ClientBuilder<I, O> builder = RxNetty.newTcpClientBuilder(server.getHost(), server.getPort()); if (pipelineConfigurator != null) { builder.pipelineConfigurator(pipelineConfigurator); } Integer connectTimeout = getProperty(IClientConfigKey.Keys.ConnectTimeout, null, DefaultClientConfigImpl.DEFAULT_CONNECT_TIMEOUT); builder.channelOption(ChannelOption.CONNECT_TIMEOUT_MILLIS, connectTimeout); if (isPoolEnabled()) { builder.withConnectionPoolLimitStrategy(poolStrategy) .withIdleConnectionsTimeoutMillis(idleConnectionEvictionMills) .withPoolIdleCleanupScheduler(poolCleanerScheduler); } else { builder.withNoConnectionPooling(); } RxClient<I, O> client = builder.build(); return client; }
Example #13
Source File: StaticLoadBalancer.java From suro with Apache License 2.0 | 6 votes |
/** * @param config contains the server list, comma separated with the format * hostname:port */ @Inject public StaticLoadBalancer(ClientConfig config) { List<Server> serverList = new ArrayList<Server>(); for (String s : config.getLoadBalancerServer().split(",")) { String[] host_port = s.split(":"); serverList.add(new Server(host_port[0], Integer.parseInt(host_port[1]))); } if (serverList.isEmpty()) { throw new IllegalArgumentException("empty server list"); } IClientConfig loadBalancerConfig = new DefaultClientConfigImpl(); loadBalancerConfig.loadProperties("suroClient"); loadBalancerConfig.setProperty(CommonClientConfigKey.NFLoadBalancerPingClassName, "com.netflix.suro.connection.SuroPing"); super.initWithNiwsConfig(loadBalancerConfig); addServers(serverList); }
Example #14
Source File: EurekaLoadBalancer.java From suro with Apache License 2.0 | 6 votes |
/** * @param config contains vipAddress */ @Inject public EurekaLoadBalancer(ClientConfig config) { String[] vipAddress_port = config.getLoadBalancerServer().split(":"); if (vipAddress_port.length != 2) { throw new IllegalArgumentException(String.format( "EurekaLoadBalancer server should be formatted vipAddress:port ('%s')", config.getLoadBalancerServer())); } this.port = Integer.parseInt(vipAddress_port[1]); IClientConfig loadBalancerConfig = new DefaultClientConfigImpl(); loadBalancerConfig.loadProperties("suroClient"); loadBalancerConfig.setProperty(CommonClientConfigKey.DeploymentContextBasedVipAddresses, vipAddress_port[0]); loadBalancerConfig.setProperty(CommonClientConfigKey.NIWSServerListClassName, DiscoveryEnabledNIWSServerList.class.getName()); super.initWithNiwsConfig(loadBalancerConfig); }
Example #15
Source File: NettyClientTest.java From ribbon with Apache License 2.0 | 5 votes |
@Test public void testPostWithObservable() throws Exception { Person myPerson = new Person("netty", 5); HttpClientRequest<ByteBuf> request = HttpClientRequest.createPost(SERVICE_URI + "testAsync/person") .withHeader("Content-type", "application/json") .withContent(SerializationUtils.serializeToBytes(JacksonCodec.getInstance(), myPerson, null)); LoadBalancingHttpClient<ByteBuf, ByteBuf> observableClient = RibbonTransport.newHttpClient( DefaultClientConfigImpl.getClientConfigWithDefaultValues().set(CommonClientConfigKey.ReadTimeout, 10000)); Observable<HttpClientResponse<ByteBuf>> response = observableClient.submit(new Server(host, port), request); Person person = getPersonObservable(response).toBlocking().single(); assertEquals(myPerson, person); }
Example #16
Source File: NettyClientTest.java From ribbon with Apache License 2.0 | 5 votes |
@Test public void testConnectTimeout() throws Exception { LoadBalancingHttpClient<ByteBuf, ByteBuf> observableClient = RibbonTransport.newHttpClient( DefaultClientConfigImpl.getClientConfigWithDefaultValues().withProperty(CommonClientConfigKey.ConnectTimeout, "1")); HttpClientRequest<ByteBuf> request = HttpClientRequest.createGet("http://www.google.com:81/"); Observable<HttpClientResponse<ByteBuf>> observable = observableClient.submit(new Server("www.google.com", 81), request); ObserverWithLatch<HttpClientResponse<ByteBuf>> observer = new ObserverWithLatch<HttpClientResponse<ByteBuf>>(); observable.subscribe(observer); observer.await(); assertNotNull(observer.error); assertTrue(observer.error instanceof io.netty.channel.ConnectTimeoutException); }
Example #17
Source File: NettyClientTest.java From ribbon with Apache License 2.0 | 5 votes |
@Test public void testReadTimeout() throws Exception { LoadBalancingHttpClient<ByteBuf, ByteBuf> observableClient = RibbonTransport.newHttpClient( DefaultClientConfigImpl.getClientConfigWithDefaultValues().withProperty(CommonClientConfigKey.ReadTimeout, "100")); HttpClientRequest<ByteBuf> request = HttpClientRequest.createGet(SERVICE_URI + "testAsync/readTimeout"); Observable<HttpClientResponse<ByteBuf>> observable = observableClient.submit(request); ObserverWithLatch<HttpClientResponse<ByteBuf>> observer = new ObserverWithLatch<HttpClientResponse<ByteBuf>>(); observable.subscribe(observer); observer.await(); assertTrue(observer.error instanceof io.netty.handler.timeout.ReadTimeoutException); }
Example #18
Source File: NettyClientTest.java From ribbon with Apache License 2.0 | 5 votes |
@Test public void testObservableWithRetrySameServer() throws Exception { IClientConfig config = DefaultClientConfigImpl.getClientConfigWithDefaultValues().withProperty(CommonClientConfigKey.ConnectTimeout, "1000"); HttpClientRequest<ByteBuf> request = HttpClientRequest.createGet("/testAsync/person"); Server badServer = new Server("localhost:12345"); Server goodServer = new Server("localhost:" + port); List<Server> servers = Lists.newArrayList(badServer, badServer, goodServer); BaseLoadBalancer lb = LoadBalancerBuilder.<Server>newBuilder() .withRule(new AvailabilityFilteringRule()) .withPing(new DummyPing()) .buildFixedServerListLoadBalancer(servers); LoadBalancingHttpClient<ByteBuf, ByteBuf> lbObservables = RibbonTransport.newHttpClient(lb, config, new NettyHttpLoadBalancerErrorHandler(1, 0, true)); Observable<Person> observableWithRetries = getPersonObservable(lbObservables.submit(request)); ObserverWithLatch<Person> observer = new ObserverWithLatch<Person>(); observableWithRetries.subscribe(observer); observer.await(); assertNull(observer.obj); assertTrue(observer.error instanceof ClientException); ServerStats stats = lbObservables.getServerStats(badServer); // two requests to bad server because retry same server is set to 1 assertEquals(2, stats.getTotalRequestsCount()); assertEquals(0, stats.getActiveRequestsCount()); stats = lbObservables.getServerStats(goodServer); assertEquals(0, stats.getTotalRequestsCount()); }
Example #19
Source File: ListenerTest.java From ribbon with Apache License 2.0 | 5 votes |
@Test public void testFailedExecution() { IClientConfig config = DefaultClientConfigImpl.getClientConfigWithDefaultValues() .withProperty(CommonClientConfigKey.ConnectTimeout, "100") .withProperty(CommonClientConfigKey.MaxAutoRetries, 1) .withProperty(CommonClientConfigKey.MaxAutoRetriesNextServer, 1); System.out.println(config); HttpClientRequest<ByteBuf> request = HttpClientRequest.createGet("/testAsync/person"); Server badServer = new Server("localhost:12345"); Server badServer2 = new Server("localhost:34567"); List<Server> servers = Lists.newArrayList(badServer, badServer2); BaseLoadBalancer lb = LoadBalancerBuilder.<Server>newBuilder() .withRule(new AvailabilityFilteringRule()) .withPing(new DummyPing()) .buildFixedServerListLoadBalancer(servers); IClientConfig overrideConfig = DefaultClientConfigImpl.getEmptyConfig(); TestExecutionListener<ByteBuf, ByteBuf> listener = new TestExecutionListener<ByteBuf, ByteBuf>(request, overrideConfig); List<ExecutionListener<HttpClientRequest<ByteBuf>, HttpClientResponse<ByteBuf>>> listeners = Lists.<ExecutionListener<HttpClientRequest<ByteBuf>, HttpClientResponse<ByteBuf>>>newArrayList(listener); LoadBalancingHttpClient<ByteBuf, ByteBuf> client = RibbonTransport.newHttpClient(lb, config, new NettyHttpLoadBalancerErrorHandler(config), listeners); try { client.submit(request, null, overrideConfig).toBlocking().last(); fail("Exception expected"); } catch(Exception e) { assertNotNull(e); } assertEquals(1, listener.executionStartCounter.get()); assertEquals(4, listener.startWithServerCounter.get()); assertEquals(4, listener.exceptionWithServerCounter.get()); assertEquals(1, listener.executionFailedCounter.get()); assertTrue(listener.isContextChecked()); assertTrue(listener.isCheckExecutionInfo()); assertNotNull(listener.getFinalThrowable()); listener.getFinalThrowable().printStackTrace(); assertTrue(listener.getFinalThrowable() instanceof ClientException); assertEquals(100, listener.getContext().getClientProperty(CommonClientConfigKey.ConnectTimeout).intValue()); }
Example #20
Source File: BasicNettyOrigin.java From zuul with Apache License 2.0 | 5 votes |
protected IClientConfig setupClientConfig(String name) { // Get the NIWS properties for this Origin. IClientConfig niwsClientConfig = DefaultClientConfigImpl.getClientConfigWithDefaultValues(name); niwsClientConfig.set(CommonClientConfigKey.ClientClassName, name); niwsClientConfig.loadProperties(name); return niwsClientConfig; }
Example #21
Source File: ListenerTest.java From ribbon with Apache License 2.0 | 5 votes |
@Test public void testFailedExecutionForAbsoluteURI() { IClientConfig config = DefaultClientConfigImpl .getClientConfigWithDefaultValues() .withProperty(CommonClientConfigKey.ConnectTimeout, "100") .withProperty(CommonClientConfigKey.MaxAutoRetries, 1) .withProperty(CommonClientConfigKey.MaxAutoRetriesNextServer, 1); HttpClientRequest<ByteBuf> request = HttpClientRequest.createGet("http://xyz.unknowhost.xyz/testAsync/person"); Server badServer = new Server("localhost:12345"); Server badServer2 = new Server("localhost:34567"); List<Server> servers = Lists.newArrayList(badServer, badServer2); BaseLoadBalancer lb = LoadBalancerBuilder.<Server>newBuilder() .withRule(new AvailabilityFilteringRule()) .withPing(new DummyPing()) .buildFixedServerListLoadBalancer(servers); IClientConfig overrideConfig = DefaultClientConfigImpl.getEmptyConfig(); TestExecutionListener<ByteBuf, ByteBuf> listener = new TestExecutionListener<ByteBuf, ByteBuf>(request, overrideConfig); List<ExecutionListener<HttpClientRequest<ByteBuf>, HttpClientResponse<ByteBuf>>> listeners = Lists.<ExecutionListener<HttpClientRequest<ByteBuf>, HttpClientResponse<ByteBuf>>>newArrayList(listener); LoadBalancingHttpClient<ByteBuf, ByteBuf> client = RibbonTransport.newHttpClient(lb, config, new NettyHttpLoadBalancerErrorHandler(config), listeners); try { client.submit(request, null, overrideConfig).toBlocking().last(); fail("Exception expected"); } catch(Exception e) { assertNotNull(e); } assertEquals(1, listener.executionStartCounter.get()); assertEquals(2, listener.startWithServerCounter.get()); assertEquals(2, listener.exceptionWithServerCounter.get()); assertEquals(1, listener.executionFailedCounter.get()); assertTrue(listener.isContextChecked()); assertTrue(listener.isCheckExecutionInfo()); assertTrue(listener.getFinalThrowable() instanceof ClientException); }
Example #22
Source File: ListenerTest.java From ribbon with Apache License 2.0 | 5 votes |
@Test public void testSuccessExecutionOnAbosoluteURI() throws IOException { MockWebServer server = new MockWebServer(); String content = "OK"; server.enqueue(new MockResponse().setResponseCode(200).setHeader("Content-type", "application/json") .setBody(content)); server.play(); IClientConfig config = DefaultClientConfigImpl.getClientConfigWithDefaultValues().withProperty(CommonClientConfigKey.ConnectTimeout, "2000") .withProperty(CommonClientConfigKey.MaxAutoRetries, 1) .withProperty(CommonClientConfigKey.MaxAutoRetriesNextServer, 1); HttpClientRequest<ByteBuf> request = HttpClientRequest.createGet("http://localhost:" + server.getPort() + "/testAsync/person"); Server badServer = new Server("localhost:12345"); Server goodServer = new Server("localhost:" + server.getPort()); List<Server> servers = Lists.newArrayList(goodServer, badServer); BaseLoadBalancer lb = LoadBalancerBuilder.<Server>newBuilder() .withRule(new AvailabilityFilteringRule()) .withPing(new DummyPing()) .buildFixedServerListLoadBalancer(servers); IClientConfig overrideConfig = DefaultClientConfigImpl.getEmptyConfig().set(CommonClientConfigKey.ConnectTimeout, 500); TestExecutionListener<ByteBuf, ByteBuf> listener = new TestExecutionListener<ByteBuf, ByteBuf>(request, overrideConfig); List<ExecutionListener<HttpClientRequest<ByteBuf>, HttpClientResponse<ByteBuf>>> listeners = Lists.<ExecutionListener<HttpClientRequest<ByteBuf>, HttpClientResponse<ByteBuf>>>newArrayList(listener); LoadBalancingHttpClient<ByteBuf, ByteBuf> client = RibbonTransport.newHttpClient(lb, config, new NettyHttpLoadBalancerErrorHandler(config), listeners); HttpClientResponse<ByteBuf> response = client.submit(request, null, overrideConfig).toBlocking().last(); assertEquals(200, response.getStatus().code()); assertEquals(1, listener.executionStartCounter.get()); assertEquals(1, listener.startWithServerCounter.get()); assertEquals(0, listener.exceptionWithServerCounter.get()); assertEquals(0, listener.executionFailedCounter.get()); assertEquals(1, listener.executionSuccessCounter.get()); assertEquals(500, listener.getContext().getClientProperty(CommonClientConfigKey.ConnectTimeout).intValue()); assertTrue(listener.isContextChecked()); assertTrue(listener.isCheckExecutionInfo()); assertSame(response, listener.getResponse()); }
Example #23
Source File: TestController.java From alibabacloud-microservice-demo with Apache License 2.0 | 5 votes |
@RequestMapping(value = "/servers", method = RequestMethod.GET) public List<NacosServer> servers() { DefaultClientConfigImpl iClientConfig = new DefaultClientConfigImpl(); iClientConfig.setClientName("service-provider"); NacosServerList serverList = new NacosServerList(properties); serverList.initWithNiwsConfig(iClientConfig); return serverList.getInitialListOfServers(); }
Example #24
Source File: NettyClientTest.java From ribbon with Apache License 2.0 | 5 votes |
@Test public void testObservableWithMultipleServersWithOverrideRxConfig() throws Exception { IClientConfig config = DefaultClientConfigImpl.getClientConfigWithDefaultValues().withProperty(CommonClientConfigKey.ConnectTimeout, "1000"); HttpClientRequest<ByteBuf> request = HttpClientRequest.createGet("/testAsync/person"); Server badServer = new Server("localhost:12345"); Server goodServer = new Server("localhost:" + port); List<Server> servers = Lists.newArrayList(badServer, badServer, badServer, goodServer); BaseLoadBalancer lb = LoadBalancerBuilder.<Server>newBuilder() .withRule(new AvailabilityFilteringRule()) .withPing(new DummyPing()) .buildFixedServerListLoadBalancer(servers); LoadBalancingHttpClient<ByteBuf, ByteBuf> lbObservables = RibbonTransport.newHttpClient(lb, config, new NettyHttpLoadBalancerErrorHandler(1, 3, true)); HttpClientConfig rxconfig = HttpClientConfig.Builder.newDefaultConfig(); Person person = getPersonObservable(lbObservables.submit(request, rxconfig)).toBlocking().single(); assertEquals(EmbeddedResources.defaultPerson, person); ServerStats stats = lbObservables.getServerStats(badServer); // two requests to bad server because retry same server is set to 1 assertEquals(4, stats.getTotalRequestsCount()); assertEquals(0, stats.getActiveRequestsCount()); assertEquals(4, stats.getSuccessiveConnectionFailureCount()); stats = lbObservables.getServerStats(goodServer); assertEquals(1, stats.getTotalRequestsCount()); assertEquals(0, stats.getActiveRequestsCount()); assertEquals(0, stats.getSuccessiveConnectionFailureCount()); final HttpClientListener listener = lbObservables.getListener(); assertEquals(1, listener.getConnectionCount()); waitUntilTrueOrTimeout(1000, new Func0<Boolean>() { @Override public Boolean call() { return listener.getPoolReleases() == 1; } }); }
Example #25
Source File: UdpClientTest.java From ribbon with Apache License 2.0 | 5 votes |
@Test public void testUdpClientWithoutTimeout() throws Exception { int port = choosePort(); UdpServer<DatagramPacket, DatagramPacket> server = new HelloUdpServer(port, 0).createServer(); server.start(); BaseLoadBalancer lb = new BaseLoadBalancer(); lb.setServersList(Lists.newArrayList(new Server("localhost", port))); RxClient<DatagramPacket, DatagramPacket> client = RibbonTransport.newUdpClient(lb, DefaultClientConfigImpl.getClientConfigWithDefaultValues()); try { String response = client.connect().flatMap(new Func1<ObservableConnection<DatagramPacket, DatagramPacket>, Observable<DatagramPacket>>() { @Override public Observable<DatagramPacket> call(ObservableConnection<DatagramPacket, DatagramPacket> connection) { connection.writeStringAndFlush("Is there anybody out there?"); return connection.getInput(); } }).take(1) .map(new Func1<DatagramPacket, String>() { @Override public String call(DatagramPacket datagramPacket) { return datagramPacket.content().toString(Charset.defaultCharset()); } }) .toBlocking() .first(); assertEquals(HelloUdpServer.WELCOME_MSG, response); } finally { server.shutdown(); } }
Example #26
Source File: LoadBalancingRxClient.java From ribbon with Apache License 2.0 | 5 votes |
public int getResponseTimeOut() { int maxRetryNextServer = 0; int maxRetrySameServer = 0; if (defaultRetryHandler != null) { maxRetryNextServer = defaultRetryHandler.getMaxRetriesOnNextServer(); maxRetrySameServer = defaultRetryHandler.getMaxRetriesOnSameServer(); } else { maxRetryNextServer = clientConfig.get(IClientConfigKey.Keys.MaxAutoRetriesNextServer, DefaultClientConfigImpl.DEFAULT_MAX_AUTO_RETRIES_NEXT_SERVER); maxRetrySameServer = clientConfig.get(IClientConfigKey.Keys.MaxAutoRetries, DefaultClientConfigImpl.DEFAULT_MAX_AUTO_RETRIES); } int readTimeout = getProperty(IClientConfigKey.Keys.ReadTimeout, null, DefaultClientConfigImpl.DEFAULT_READ_TIMEOUT); int connectTimeout = getProperty(IClientConfigKey.Keys.ConnectTimeout, null, DefaultClientConfigImpl.DEFAULT_CONNECT_TIMEOUT); return (maxRetryNextServer + 1) * (maxRetrySameServer + 1) * (readTimeout + connectTimeout); }
Example #27
Source File: LoadBalancingHttpClient.java From ribbon with Apache License 2.0 | 5 votes |
/** * Subject an operation to run in the load balancer * * @param request * @param errorHandler * @param requestConfig * @param rxClientConfig * @return */ private Observable<HttpClientResponse<O>> submit(final Server server, final HttpClientRequest<I> request, final RetryHandler errorHandler, final IClientConfig requestConfig, final ClientConfig rxClientConfig) { RetryHandler retryHandler = errorHandler; if (retryHandler == null) { retryHandler = getRequestRetryHandler(request, requestConfig); } final IClientConfig config = requestConfig == null ? DefaultClientConfigImpl.getEmptyConfig() : requestConfig; final ExecutionContext<HttpClientRequest<I>> context = new ExecutionContext<HttpClientRequest<I>>(request, config, this.getClientConfig(), retryHandler); Observable<HttpClientResponse<O>> result = submitToServerInURI(request, config, rxClientConfig, retryHandler, context); if (result == null) { LoadBalancerCommand<HttpClientResponse<O>> command; if (retryHandler != defaultRetryHandler) { // need to create new builder instead of the default one command = LoadBalancerCommand.<HttpClientResponse<O>>builder() .withExecutionContext(context) .withLoadBalancerContext(lbContext) .withListeners(listeners) .withClientConfig(this.getClientConfig()) .withRetryHandler(retryHandler) .withServer(server) .build(); } else { command = defaultCommandBuilder; } result = command.submit(requestToOperation(request, getRxClientConfig(config, rxClientConfig))); } return result; }
Example #28
Source File: LoadBalancingHttpClient.java From ribbon with Apache License 2.0 | 5 votes |
/** * Construct an RxClient.ClientConfig from an IClientConfig * * @param requestConfig * @return */ private RxClient.ClientConfig getRxClientConfig(IClientConfig requestConfig) { if (requestConfig == null) { return DEFAULT_RX_CONFIG; } int requestReadTimeout = getProperty(IClientConfigKey.Keys.ReadTimeout, requestConfig, DefaultClientConfigImpl.DEFAULT_READ_TIMEOUT); Boolean followRedirect = getProperty(IClientConfigKey.Keys.FollowRedirects, requestConfig, null); HttpClientConfig.Builder builder = new HttpClientConfig.Builder().readTimeout(requestReadTimeout, TimeUnit.MILLISECONDS); if (followRedirect != null) { builder.setFollowRedirect(followRedirect); } return builder.build(); }
Example #29
Source File: LoadBalancingHttpClient.java From ribbon with Apache License 2.0 | 5 votes |
public LoadBalancingHttpClient<I, O> build() { if (retryHandler == null) { retryHandler = new NettyHttpLoadBalancerErrorHandler(); } if (config == null) { config = DefaultClientConfigImpl.getClientConfigWithDefaultValues(); } if (lb == null) { lb = LoadBalancerBuilder.newBuilder().withClientConfig(config).buildLoadBalancerFromConfigWithReflection(); } if (listeners == null) { listeners = Collections.<ExecutionListener<HttpClientRequest<I>, HttpClientResponse<O>>>emptyList(); } if (backoffStrategy == null) { backoffStrategy = new Func1<Integer, Integer>() { @Override public Integer call(Integer backoffCount) { int interval = config.getOrDefault(IClientConfigKey.Keys.BackoffInterval); if (backoffCount < 0) { backoffCount = 0; } else if (backoffCount > 10) { // Reasonable upper bound backoffCount = 10; } return (int)Math.pow(2, backoffCount) * interval; } }; } if (responseToErrorPolicy == null) { responseToErrorPolicy = new DefaultResponseToErrorPolicy<O>(); } return build.call(this); }
Example #30
Source File: SSEClient.java From ribbon with Apache License 2.0 | 5 votes |
@Override protected HttpClient<I, ServerSentEvent> getOrCreateRxClient(Server server) { HttpClientBuilder<I, ServerSentEvent> clientBuilder = new HttpClientBuilder<I, ServerSentEvent>(server.getHost(), server.getPort()).pipelineConfigurator(pipelineConfigurator); int requestConnectTimeout = getProperty(IClientConfigKey.Keys.ConnectTimeout, null, DefaultClientConfigImpl.DEFAULT_CONNECT_TIMEOUT); RxClient.ClientConfig rxClientConfig = new HttpClientConfig.Builder().build(); HttpClient<I, ServerSentEvent> client = clientBuilder.channelOption( ChannelOption.CONNECT_TIMEOUT_MILLIS, requestConnectTimeout).config(rxClientConfig).build(); return client; }