use of org.apache.druid.client.selector.Server in project druid by druid-io.
the class ServerDiscoverySelectorTest method testPick.
@Test
public void testPick() throws Exception {
EasyMock.expect(serviceProvider.getInstance()).andReturn(instance).anyTimes();
EasyMock.expect(instance.getAddress()).andReturn(ADDRESS).anyTimes();
EasyMock.expect(instance.getPort()).andReturn(PORT).anyTimes();
EasyMock.expect(instance.getSslPort()).andReturn(-1).anyTimes();
EasyMock.replay(instance, serviceProvider);
Server server = serverDiscoverySelector.pick();
Assert.assertEquals(PORT, server.getPort());
Assert.assertEquals(ADDRESS, server.getAddress());
Assert.assertTrue(server.getHost().contains(Integer.toString(PORT)));
Assert.assertTrue(server.getHost().contains(ADDRESS));
Assert.assertEquals("http", server.getScheme());
EasyMock.verify(instance, serviceProvider);
final URI uri = new URI(server.getScheme(), null, server.getAddress(), server.getPort(), "/druid/indexer/v1/action", null, null);
Assert.assertEquals(PORT, uri.getPort());
Assert.assertEquals(ADDRESS, uri.getHost());
Assert.assertEquals("http", uri.getScheme());
}
use of org.apache.druid.client.selector.Server in project druid by druid-io.
the class ServerDiscoverySelectorTest method testPickWithNullSslPort.
@Test
public void testPickWithNullSslPort() throws Exception {
EasyMock.expect(serviceProvider.getInstance()).andReturn(instance).anyTimes();
EasyMock.expect(instance.getAddress()).andReturn(ADDRESS).anyTimes();
EasyMock.expect(instance.getPort()).andReturn(PORT).anyTimes();
EasyMock.expect(instance.getSslPort()).andReturn(null).anyTimes();
EasyMock.replay(instance, serviceProvider);
Server server = serverDiscoverySelector.pick();
Assert.assertEquals(PORT, server.getPort());
Assert.assertEquals(ADDRESS, server.getAddress());
Assert.assertTrue(server.getHost().contains(Integer.toString(PORT)));
Assert.assertTrue(server.getHost().contains(ADDRESS));
Assert.assertEquals("http", server.getScheme());
EasyMock.verify(instance, serviceProvider);
final URI uri = new URI(server.getScheme(), null, server.getAddress(), server.getPort(), "/druid/indexer/v1/action", null, null);
Assert.assertEquals(PORT, uri.getPort());
Assert.assertEquals(ADDRESS, uri.getHost());
Assert.assertEquals("http", uri.getScheme());
}
use of org.apache.druid.client.selector.Server in project druid by druid-io.
the class ServerDiscoverySelectorTest method testPickWithException.
@Test
public void testPickWithException() throws Exception {
EasyMock.expect(serviceProvider.getInstance()).andThrow(new Exception()).anyTimes();
EasyMock.replay(serviceProvider);
Server server = serverDiscoverySelector.pick();
Assert.assertNull(server);
EasyMock.verify(serviceProvider);
}
use of org.apache.druid.client.selector.Server in project druid by druid-io.
the class ConsistentHashAvaticaConnectionBalancer method pickServer.
@Override
public Server pickServer(Collection<Server> servers, String connectionId) {
synchronized (hasher) {
if (servers.isEmpty()) {
return null;
}
Map<String, Server> serverMap = new HashMap<>();
for (Server server : servers) {
serverMap.put(server.getHost(), server);
}
hasher.updateKeys(serverMap.keySet());
String chosenServer = hasher.findKey(StringUtils.toUtf8(connectionId));
return serverMap.get(chosenServer);
}
}
use of org.apache.druid.client.selector.Server in project druid by druid-io.
the class QueryHostFinder method findServerSql.
public Server findServerSql(SqlQuery sqlQuery) {
Server server = findServerInner(hostSelector.selectForSql(sqlQuery));
assertServerFound(server, "No server found for SQL Query [%s]", "SELECT IT");
return server;
}
Aggregations