5616251f22
Today `node.mode` and `node.local` serve almost the same purpose, they are a shortcut for `discovery.type` and `transport.type`. If `node.local: true` or `node.mode: local` is set elasticsearch will start in _local_ mode which means only nodes within the same JVM are discovered and a non-network based transport is used. The _local_ mode it only really used in tests or if nodes are embedded. For both, embedding and tests explicit configuration via `discovery.type` and `transport.type` should be preferred. This change removes all the usage of these settings and by-default doesn't configure a default transport implemenation since netty is now a module. Yet, to make the user expericence flawless, plugins or modules can set a `http.type.default` and `transport.type.default`. Plugins set this via `PluginService#additionalSettings()` which enforces _set-once_ which prevents node startup if set multiple times. This means that our distributions will just startup with netty transport since it's packaged as a module unless `transport.type` or `http.transport.type` is explicitly set. This change also found a bunch of bugs since several NamedWriteables were not registered if a transport client is used. Now that we don't rely on the `node.mode` leniency which is inherited instead of using explicit settings, `TransportClient` uses `AssertingLocalTransport` which detects these problems since it serializes all messages. Closes #16234 |
||
---|---|---|
.. | ||
src/test | ||
build.gradle |