Micronaut is a microservice framework for building modular applications. This develops a configuration that bests works with Micronaut.
Documentation: https://micronaut-projects.github.io/micronaut-ignite/snapshot/guide/
Releases: https://github.com/micronaut-projects/micronaut-ignite/releases
Micronaut can span an instance of Ignite automatically. Below we review several configuration options.
A thick client bean can be configured via the application properties file as follows:
ignite: enabled: true client-mode: true discovery-spi: static-ip-finder: enabled: true addresses: - "127.0.0.1:47500" - "127.0.0.1:47501"
Instead of the static IP finder, you can enable the Kubernetes one if a Micronaut app is deployed in a K8S environment:
ignite: enabled: true client-mode: true discovery-spi: kubernetes-ip-finder: enabled: true namespace: default service-name: ignite
Additional configuration can be applied on top of the default configuration by intercepting the bean when its created, Using the BeanCreatedEventListener.
@Singleton public class IgniteConfigurationFactoryInterceptor implements BeanCreatedEventListener<DefaultIgniteConfiguration> { @Override public DefaultIgniteConfiguration onCreated(BeanCreatedEvent<DefaultIgniteConfiguration> event) { DefaultIgniteConfiguration configuration = event.getBean(); configuration.setIgniteInstanceName("instance-a"); return configuration; } }
ignite: enabled: true cache-configurations: name: group-name: string onheap-cache: boolean sql-onheap-cache: boolean eager-ttl: boolean cache-mode: LOCAL | REPLICATED | PARTITIONED rebalance-mode: SYNC | ASYNC | NONE data-region-name: string key-type: java.Object value-type: java.Object second: group-name: two
@Factory public class configurationFactory(){ @Singleton @Bean @IgnitePrimary CacheConfiguration<String,String> cacheInstance() { return new CacheConfiguration<String, String>("my-cache") .setBackups(10); } }
ignite-thin-client: enabled: true addresses: - "127.0.0.1:10800" - "127.0.0.1:10801"
Micronaut cache is covered under snapshot documentation. By default, the primary Ignite instance is used for Micronaut cache and the key from for each cache operation will refer to the IgniteCache instance.
https://github.com/pollend/micronaut-ignite-sample