【问题标题】:Configuring Apache Ignite with Spring Boot使用 Spring Boot 配置 Apache Ignite
【发布时间】:2021-04-22 21:21:00
【问题描述】:

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

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

【问题讨论】:

  • 我建议使用专用的 Ignite XML 配置文件。
  • @alamar 你能详细说明为什么它更可取吗?
  • 因为每天都有数百名了解此过程的用户使用它。对于 Spring Boot 配置,您需要自己做。我记得每年可能有一次关于这种配置格式的询问。除非您是 Spring Boot 专家,否则我建议您使用经典的 Spring XML。
  • 这是 Ignite 在不到一年前(2020 年 5 月)添加的新集成,所以我希望它现在能更好地工作。
  • 它仍然有不止一种方式来启动Ignite,所以也许你需要使用程序化的方式。除非您是application.yml 的专家。如果是,那应该非常简单。

标签: java spring-boot configuration ignite


【解决方案1】:

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

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

IP finder 是 tcpDiscoverySpi 的一部分,它是抽象接口,因此没有设置器或获取器用于属性能够从 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() {
        ....
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 2023-02-21
    • 2020-03-10
    • 2020-07-09
    • 1970-01-01
    • 2023-03-19
    • 2013-11-01
    相关资源
    最近更新 更多