Github user HungUnicorn commented on the issue:
https://github.com/apache/flink/pull/1962
Using the sniffing feature of transport client can achieve this.
The client will connect to all existing nodes and the connected list is
updated every 5 seconds. It can fit our case because we will only have to
specify one ip, and we will obtain a list of ips which updated periodically.
It's done by
`Settings settings =
Settings.settingsBuilder().put(userConfig).put("client.transport.sniff",
true).build();`
Explanation:
> The Transport client comes with a cluster sniffing feature which allows
it to dynamically add new hosts and remove old ones. When sniffing is enabled
the the transport client will connect to the nodes in its internal node list,
which is built via calls to addTransportAddress. After this, the client will
call the internal cluster state API on those nodes to discover available data
nodes. The internal node list of the client will be replaced with those data
nodes only. This list is refreshed every five seconds by default.
Source:
https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.3//transport-client.html
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---