First off, I know embedded servers are not officially supported. I'm glad for any "unofficial" help too.
I am trying to connect to an embedded node with a TransportClient. The embedded node gets created with the Node class like this:
final Settings settings = Settings.builder()
// some settings omitted
.put("cluster.name", clusterName)
.put("transport.bind_host", "127.0.0.1")
.put("http.enabled", false)
.put("transport.type", "netty4")
.put("transport.tcp.port", 9350)
.build();
node = new Node(settings);
However, I get the following error:
java.lang.IllegalStateException: Unsupported transport.type [netty4]
The only semi-documented way to use the transport.type
settings is transport.type: local
, but I want it to be accessible. Setting it to local
causes connection refused
errors. netty4
is what I tried looking through the source code, with no success. Omitting the setting makes Elasticsearch assume empty string instead of a default, causing a similar error:
java.lang.IllegalStateException: Unsupported transport.type
How do I configure the internal node in a way that lets an external transport client connect to it?