How does tranquility locate druid services?

hi ,

I have query regarding the use of tranquility to insert data into druid.

When we use tranquility library from a Java application we specify following configuration:

“properties” : {

“zookeeper.connect” : “192.168.99.100”,

“druid.discovery.curator.path” : “/druid/discovery”,

“druid.selectors.indexing.serviceName” : “druid/overlord”,

“http.port” : “8200”,

}

``

There is no process/server running on 8200 on the host specified above ( not using tranquility server distribution, but tranquility lib). How does tranquility locate druid services like middle manager, overlord etc. How does data flow from tranquility to druid?

Is there any internal server (like embedded jetty etc.) spun up on 8200 within the application?

Does anyone know how tranquility locates druid services when used as a library? Also does tranquility runs any server process in-memory (like embedded server) which listens at 8200?

Tranquility locates Druid services using ZooKeeper. The first 3 configs are the important ones there.

It only starts up a server if you’re running it in Tranquility Server mode. If you’re embedding it as a library then no server will start.

Hi Gian,

The config doesn’t let us specify zookeeper port. Is this 2181 by default? what if 2181 is mapped to another port say while running on kubernetes? How can we pass the port through config?

Thanks,

Prathamesh

solution:

We can indeed specify the zookeeper port in zookeeper.connect.

If using Kubernetes, the port mapped to 2181 can be specified.

“zookeeper.connect” : “zkhost.cluser.com:31268

``

where 31268 would be mapped to 2181 on a kuberentes cluster.

Thanks,

Prathamesh

You can specify a port in the zookeeper.connect setting (it can be an entire zookeeper connect string, i.e. comma-separated host:port pairs).