使用 Spring 引导配置 Apache Ignite

Configuring Apache Ignite with Spring Boot

我正在使用 ignite-spring-boot-autoconfigure-ext 官方 Ignite 库与我的 Spring 启动应用程序集成。我以这个例子为基础:https://ignite.apache.org/docs/latest/extensions-and-integrations/spring/spring-boot#set-ignite-up-via-spring-boot-configuration 这个例子看起来很简单,但它只展示了 Ignite 配置选项的一小部分。我尝试配置一个 IP 查找器和一个带有逐出策略的近缓存,但没有成功。更糟糕的是,不正确的配置通常会被忽略。

是否有更完整的示例说明如何使用此配置,或者它根本不支持更高级的配置选项?

application.yml 只是一个属性文件,不是上下文配置文件。

application.yml 帮助您设置(覆盖)属性。在上面的示例中,它覆盖了位于“ignite”下的 IgniteConfiguration class 的属性。在你的 application.yml 文件中..

IP finder 是 tcpDiscoverySpi 的一部分,它是抽象接口,因此没有属性的 setter 或 getter 可以从 yml 文件中覆盖它们。

您仍然可以使用 XML Spring 上下文配置或使用 @ConfigurationProperties 和 @Value 注释以编程方式配置 Ignite 实例:

application.yml:

ignite-ext:
  vm-ip-finder:
    addresses:
      - 192.168.0.1:47500
      - 192.168.0.1:47501
      - 192.168.0.1:47502

用法:

@SpringBootApplication
public class AutoConfigureExample {
    @Bean
    @ConfigurationProperties(prefix = "ignite-ext.vm-ip-finder")
    public TcpDiscoveryVmIpFinder tcpDiscoveryVmIpFinder() {
        return new TcpDiscoveryVmIpFinder();
    }
}

@Bean
public CommandLineRunner runner() {
    @Autowired
    TcpDiscoveryVmIpFinder tcpDiscoveryVmIpFinder;
    return new CommandLineRunner() {
        ....
    }
}