Как подключить Apache Ignite как cache к Spring Boot?

Хочу использовать Ignite как распределенный cache, но не могу понять как настроить подключение к хосту.

Имею вот такой конфиг

package ru.test.springignitecache.config

import org.apache.ignite.Ignite
import org.apache.ignite.Ignition
import org.apache.ignite.cache.CacheAtomicityMode
import org.apache.ignite.cache.CacheMode
import org.apache.ignite.configuration.CacheConfiguration
import org.apache.ignite.configuration.IgniteConfiguration
import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi
import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder
import org.apache.ignite.springdata22.repository.config.EnableIgniteRepositories
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import ru.zneik.springignitecache.model.Person
import java.util.*
import kotlin.collections.ArrayList


@Configuration
@EnableIgniteRepositories(value = ["ru.test.springignitecache.model"])
class IgniteConfig {

    @Bean
    fun igniteInstance(): Ignite? {
        return Ignition.start(igniteConfiguration())
    }

    @Bean(name = ["igniteConfiguration"])
    fun igniteConfiguration(): IgniteConfiguration? {
        val igniteConfiguration = IgniteConfiguration()
        igniteConfiguration.igniteInstanceName = "testIgniteInstance"
        //igniteConfiguration.setClientMode(true);
        igniteConfiguration.isPeerClassLoadingEnabled = true
        igniteConfiguration.localHost = "192.168.99.100"
        val tcpDiscoverySpi = TcpDiscoverySpi()
        val ipFinder = TcpDiscoveryMulticastIpFinder()
        ipFinder.setAddresses(Collections.singletonList("192.168.99.100:47500..47509"))
        tcpDiscoverySpi.ipFinder = ipFinder
        tcpDiscoverySpi.localPort = 47500
        tcpDiscoverySpi.localPortRange = 9
        igniteConfiguration.discoverySpi = tcpDiscoverySpi
        val communicationSpi = TcpCommunicationSpi()
        communicationSpi.localAddress = "192.168.99.100"
        communicationSpi.localPort = 48100
        communicationSpi.slowClientQueueLimit = 1000
        igniteConfiguration.communicationSpi = communicationSpi
        igniteConfiguration.setCacheConfiguration(*cacheConfiguration())
        return igniteConfiguration
    }

    @Bean(name = ["cacheConfiguration"])
    fun cacheConfiguration(): Array<CacheConfiguration<*, *>> {
        val cacheConfigurations: MutableList<CacheConfiguration<*, *>> = ArrayList()

        val cacheConfiguration: CacheConfiguration<*, *> = CacheConfiguration<Any?, Any?>()
        cacheConfiguration.atomicityMode = CacheAtomicityMode.ATOMIC
        cacheConfiguration.cacheMode = CacheMode.REPLICATED
        cacheConfiguration.name = "persons"
        cacheConfiguration.isStatisticsEnabled = true

        val ccfg: CacheConfiguration<UUID?, Person?> = CacheConfiguration<UUID?, Person?>("PersonCache")
        ccfg.setIndexedTypes(UUID::class.java, Person::class.java)

        cacheConfigurations.add(ccfg)
        cacheConfigurations.add(cacheConfiguration)

        return cacheConfigurations.toTypedArray()
    }
}

Ответы (0 шт):