【发布时间】:2021-05-23 23:18:51
【问题描述】:
我有一个正在运行的 Ignite 集群,我使用 AWS S3 进行节点发现:
TcpDiscoveryS3IpFinder ipFinder = new TcpDiscoveryS3IpFinder();
BasicAWSCredentials awsCredentials =
new BasicAWSCredentials(igniteAccessKey, igniteSecretAccessKey);
ipFinder.setAwsCredentials(awsCredentials);
ipFinder.setBucketName(igniteBucketName);
ipFinder.setBucketEndpoint("s3.eu-central-1.amazonaws.com");
TcpDiscoverySpi spi = new TcpDiscoverySpi();
spi.setIpFinder(ipFinder);
IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setClientMode(true);
cfg.setDiscoverySpi(spi);
Ignition.start(cfg);
效果很好,我可以使用Apache Ignite Client 节点连接到这个集群。
但是Apache Ignite Thin Client 呢? Thin client 使用需要集群节点 IP 地址列表的 ClientConfiguration 类(而不是 IgniteConfiguration)。 AFAIK 只能硬编码该 IP 地址列表。
来自官方文档:
ClientConfiguration cfg = new ClientConfiguration().setAddresses("127.0.0.1:10800");
try (IgniteClient client = Ignition.startClient(cfg)) {
ClientCache<Integer, String> cache = client.cache("myCache");
// Get data from the cache
}
所以我有问题:
- 当 IP 地址列表发生变化时,我应该如何处理?
- 有什么方法可以为
Thin clients使用节点发现?
【问题讨论】: