获取IgniteCheckedException时出现异常:无法启动SPI:TcpDiscoverySpi异常错误

zbq4xfa0  于 2022-10-31  发布在  Spring
关注(0)|答案(2)|浏览(754)

我已经在openshift/Kubernetes集群上安装了apache ignite。在安装apache ignite时,我提供了以下节点-configuration.xml。我已经按照this文档安装了ignite集群

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean class="org.apache.ignite.configuration.IgniteConfiguration">

    <property name="workDirectory" value="/ignite/work"/>

    <property name="dataStorageConfiguration">
        <bean class="org.apache.ignite.configuration.DataStorageConfiguration">
            <property name="defaultDataRegionConfiguration">
                <bean class="org.apache.ignite.configuration.DataRegionConfiguration">
                    <property name="persistenceEnabled" value="true"/>
                </bean>
            </property>

            <property name="walPath" value="/ignite/wal"/>
            <property name="walArchivePath" value="/ignite/walarchive"/>
        </bean>

    </property>

    <property name="discoverySpi">
        <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
            <property name="ipFinder">
                <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder">
                    <constructor-arg>
                        <bean class="org.apache.ignite.kubernetes.configuration.KubernetesConnectionConfiguration">
                            <property name="namespace" value="ignite" />
                            <property name="serviceName" value="ignite-service" />
                        </bean>
                    </constructor-arg>
                </bean>
            </property>
        </bean>
    </property>
</bean>

并在Java代码中使用以下配置启动Ignite客户端

IgniteConfiguration cfg = new IgniteConfiguration();
    cfg.setClientMode(true);
    cfg.setPeerClassLoadingEnabled(false);
    KubernetesConnectionConfiguration kubernetesCfg = new KubernetesConnectionConfiguration();
    kubernetesCfg.setNamespace("ignite");
    kubernetesCfg.setServiceName("ignite-service");
    TcpDiscoveryKubernetesIpFinder kubernetesIpFinder = new TcpDiscoveryKubernetesIpFinder(kubernetesCfg);
    cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(kubernetesIpFinder));

但在启动IgniteJava客户端时出现以下错误。

> 

[ERROR] 2022-10-11 18:15:56.638 [main] IgniteKernal - Failed to start manager: GridManagerAdapter [enabled=true, name=o.a.i.i.managers.discovery.GridDiscoveryManager]
    org.apache.ignite.IgniteCheckedException: Failed to start SPI: TcpDiscoverySpi [addrRslvr=null, sockTimeout=5000, ackTimeout=5000, marsh=JdkMarshaller [clsFilter=org.apache.ignite.marshaller.MarshallerUtils$1@6c302a1d], reconCnt=10, reconDelay=2000, maxAckTimeout=600000, soLinger=5, forceSrvMode=false, clientReconnectDisabled=false, internalLsnr=null, skipAddrsRandomization=false]
        at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:280) ~[ignite-core-8.8.11.jar!/:8.8.11]
        at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:985) ~[ignite-core-8.8.11.jar!/:8.8.11]
        at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1919) ~[ignite-core-8.8.11.jar!/:8.8.11]
        at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1235) ~[ignite-core-8.8.11.jar!/:8.8.11]
        at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1784) ~[ignite-core-8.8.11.jar!/:8.8.11]
        at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1706) ~[ignite-core-8.8.11.jar!/:8.8.11]
        at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1143) ~[ignite-core-8.8.11.jar!/:8.8.11]
        at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:660) ~[ignite-core-8.8.11.jar!/:8.8.11]
        at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:597) ~[ignite-core-8.8.11.jar!/:8.8.11]
        at org.apache.ignite.Ignition.getOrStart(Ignition.java:410) ~[ignite-core-8.8.11.jar!/:8.8.11]
        at org.osdu.gcz.transformer.repository.ignite.DefaultFeatureCache.<init>(DefaultFeatureCache.java:64) ~[classes!/:0.17.0-SNAPSHOT]
        at org.osdu.gcz.transformer.configuration.TransformerConfiguration.remoteFeatureCache(TransformerConfiguration.java:53) ~[classes!/:0.17.0-SNAPSHOT]
        at org.osdu.gcz.transformer.configuration.TransformerConfiguration$$EnhancerBySpringCGLIB$$e666dfd2.CGLIB$remoteFeatureCache$1(
nzk0hqpo

nzk0hqpo1#

来自detailed log的错误:
Local node and remote node have different version numbers (node will not join, Ignite does not support rolling updates, so versions must be exactly the same) [locBuildVer=8.7.12, rmtBuildVer=8.8.11
确保所有节点都具有相同的Ignite版本。

xesrikrc

xesrikrc2#

请尝试使用此方法启动客户端

@Bean
    public Ignite igniteInstance() {
        log.info("Creating ignite instance");
        TcpDiscoveryKubernetesIpFinder tcpDiscoveryKubernetesIpFinder = new TcpDiscoveryKubernetesIpFinder();
        tcpDiscoveryKubernetesIpFinder.setNamespace("default");
        tcpDiscoveryKubernetesIpFinder.setServiceName("job-cache");

        TcpDiscoverySpi tcpDiscoverySpi = new TcpDiscoverySpi();
        tcpDiscoverySpi.setIpFinder(tcpDiscoveryKubernetesIpFinder);

        IgniteConfiguration igniteConfiguration = new IgniteConfiguration();

        igniteConfiguration.setDiscoverySpi(tcpDiscoverySpi);
        igniteConfiguration.setClientMode(false);

        return Ignition.start(igniteConfiguration);
    }

请尝试添加这些依赖项,而不是在pom.xml中创建Bean

<dependency>
            <groupId>org.apache.ignite</groupId>
            <artifactId>ignite-kubernetes</artifactId>
            <version>2.7.6</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ignite</groupId>
            <artifactId>ignite-spring</artifactId>
            <version>2.7.6</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.ignite</groupId>
                    <artifactId>ignite-indexing</artifactId>
                </exclusion>
            </exclusions>
</dependency>

请遵循本文档,Documentation-第1部分

相关问题