Apache ignite:禁用对等类加载

时间:2019-06-18 15:17:56

标签: spring-boot ignite

我正在尝试从Spring Boot应用程序连接到Apache Ignite服务器。

示例代码:

ClientConfiguration cfg = new ClientConfiguration().setAddresses("127.0.0.1:10800");
try (IgniteClient client = Ignition.startClient(cfg)) {
    Object cachedName = client.query(
            new SqlFieldsQuery("SELECT name from Person WHERE id=?").setArgs("foo").setSchema("PUBLIC")
    ).getAll().iterator().next().iterator().next();
}

我收到此错误:

  

由于:类org.apache.ignite.IgniteCheckedException:远程节点   具有与本地不同的对等类加载启用标志   [locId8 = 459833a1,locPeerClassLoading = true,rmtId8 = 83ea88ca,   rmtPeerClassLoading = false,   rmtAddrs = [ignite-0.ignite.default.svc.cluster.local / 0:0:0:0:0:0:0:0:1%lo,   /10.4.2.49,/127.0.0.1],rmtNode=ClusterNode   [id = 83ea88ca-da77-4887-9357-267ac7397767,订单= 1,   addr = [0:0:0:0:0:0:0:1:1%lo,10.x.x.x,127.0.0.1],daemon = false]]

因此需要在我的Java代码中停用PeerClassLoading。我该怎么办?

1 个答案:

答案 0 :(得分:0)

如评论中所述,错误是来自连接到群集的 thick 客户端(或其他服务器),而代码来自 thin 客户端。

>

如果您只是读取/写入数据而无需执行代码,那么瘦客户机是一个很好的选择。

要使用胖客户端,您需要确保胖客户端和服务器都具有相同的对等类加载配置。可能是:

<property name=“peerClassLoadingEnabled” value=“false” />
在您的Spring配置文件中。或者:

IgniteConfiguration cfg = new IgniteConfiguration()
            ...
            .setPeerClassLoadingEnabled(false);

(我在这里使用false是因为它是您当前的服务器配置。话虽如此,您可能希望将其打开。)