Apache Ignite 瘦客户端未连接到 AKS

Apache Ignite Thin Client is not connect to AKS

我创建了一个 AKS 并在其上部署了 Apache Ignite 服务。 当我检查 pods 时,我可以看到它们正在工作。

此外,我可以获得负载均衡器 IP。

我按照Apache的官方说明尝试连接Ignite和ThinClient。 我分享我的代码和说明代码。

这是我的代码:

public void ConnectIgnite()
{
    var cfg = new IgniteClientConfiguration
    {
       Endpoints = new[] { "20.101.12.***:10800" }
    };
    
    var client = Ignition.StartClient(cfg);
}

但是我的代码出现以下错误;

System.AggregateException: 'Failed to establish Ignite thin client connection, examine inner exceptions for details.'

Inner Exception ExtendedSocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

这里是Apache的指令代码;

ClientConfiguration cfg = new ClientConfiguration().setAddresses("13.86.186.145:10800");
IgniteClient client = Ignition.startClient(cfg);

ClientCache<Integer, String> cache = client.getOrCreateCache("test_cache");

cache.put(1, "first test value");

System.out.println(cache.get(1));

client.close();

还有,这里是官方说明link

我没看懂哪里不对?另外,指令说我不需要 clientid 和 clientsecret 但我不想在没有任何安全性的情况下连接,但这完全是另一个问题。

尝试从外部使用 20.101.12.*** 地址连接。 顺便说一句,什么是 13.86.186.145,你为什么要连接它?

一个更新: 好像你只是从文档中复制粘贴它,你需要用你自己的值替换它。

我发现哪里不对了。 Apache的官方页面说:使用下面的XML进行配置。

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

    <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="default" />
                            <property name="serviceName" value="ignite" />
                        </bean>
                    </constructor-arg>
                </bean>
            </property>
        </bean>
    </property>
</bean>

但是,

首先,XML 需要在 XML 顶部有一个 beans 标签。 此外,namespace value 和 serviceName value 与 apache 的官方说明页面不兼容。如果您按照 apache 的页面进行设置;

您必须使用以下值

<property name="namespace" value="ignite" />
<property name="serviceName" value="ignite-service" />

而不是

<property name="namespace" value="default" />
<property name="serviceName" value="ignite" />

更改结束,您的 XML 将看起来像

<?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="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>
</beans>

我更改了我的配置 XML 并使用以下命令重新启动 pods 并且它起作用了。

kubectl -n service rollout restart deployment ignite-cluster