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
我创建了一个 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