问题描述
我有一个正在运行的 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
?
解决方法
您可以使用域名和 IP 地址。但是你不能在瘦客户端上使用节点发现。