Apache Ignite 是否支持 PartitionAwareness 扩展集群?
Does Apache Ignite supports PartitionAwareness in scaling cluster?
我正在使用 .NET 瘦客户端测试 Apache Ignite 集群。
我已经使用 dotnet 启动器(“platforms\dotnet\bin\Apache.Ignite.exe”)在本地机器上启动了 3 个 ignite 实例。实例相互发现并自动占用 10800、10801、10802 端口。在我的测试应用程序中,我创建了 100 个缓存,每个缓存中有 1000 条记录,然后尝试依次从缓存中获取元素。
问题是只有当我手动指定 3 个地址“127.0.0.1:10800..10801”时,客户端才会向不同的节点发出请求。
var configuration = new Core.Client.IgniteClientConfiguration
{
Endpoints = new List<string> { "127.0.0.1:10800..10802" },
EnablePartitionAwareness = true
};
如果我指定“127.0.0.1”或“127.0.0.1:10800”,我只向一个节点发出了请求。
var configuration = new Core.Client.IgniteClientConfiguration
{
Endpoints = new List<string> { "127.0.0.1:10801" },
EnablePartitionAwareness = true
};
我已经使用 WireShark 检查了客户端请求:
如果我想使用 PartitionAwareness 功能,我可以只指定一个节点吗?
瘦客户端可以自动发现其他节点吗?
我们计划根据使用的内存自动缩放应用程序,因此在客户端启动时不会知道所有节点地址和端口。
现在需要列出连接字符串的所有地址。
即将推出瘦客户端发现功能,它将跟踪拓扑更改并将快照保存在客户端。实施细节:
https://cwiki.apache.org/confluence/display/IGNITE/IEP-44%3A+Thin+client+cluster+discovery
根据工单,目标版本是 2.9。我想,目标日期是九月份的某个时候。
添加到 Alexander 的回答中:
您可以在预发布版本中尝试瘦客户端发现功能:
https://www.nuget.org/packages/Apache.Ignite/2.9.0-alpha20200710
当 IgniteClientConfiguration.EnablePartitionAwareness
为 true
时启用此功能。您最初只能提供一个服务器地址,Ignite 将发现其他服务器并连接到它们,然后在节点加入或离开时保持集群信息最新。
请记住,该过程是异步和惰性的 - 当您使用 Ignite API 时,它会接收集群更新。当您什么都不做时,Ignite 也会闲置。
完整文档随正式版本一起提供。
检查了 Apache Ignite 2.9.0 中的瘦客户端自动发现功能,它运行良好:瘦客户端直接向所有 3 个实例发送请求。
我正在使用 .NET 瘦客户端测试 Apache Ignite 集群。 我已经使用 dotnet 启动器(“platforms\dotnet\bin\Apache.Ignite.exe”)在本地机器上启动了 3 个 ignite 实例。实例相互发现并自动占用 10800、10801、10802 端口。在我的测试应用程序中,我创建了 100 个缓存,每个缓存中有 1000 条记录,然后尝试依次从缓存中获取元素。 问题是只有当我手动指定 3 个地址“127.0.0.1:10800..10801”时,客户端才会向不同的节点发出请求。
var configuration = new Core.Client.IgniteClientConfiguration
{
Endpoints = new List<string> { "127.0.0.1:10800..10802" },
EnablePartitionAwareness = true
};
如果我指定“127.0.0.1”或“127.0.0.1:10800”,我只向一个节点发出了请求。
var configuration = new Core.Client.IgniteClientConfiguration
{
Endpoints = new List<string> { "127.0.0.1:10801" },
EnablePartitionAwareness = true
};
我已经使用 WireShark 检查了客户端请求:
如果我想使用 PartitionAwareness 功能,我可以只指定一个节点吗?
瘦客户端可以自动发现其他节点吗?
我们计划根据使用的内存自动缩放应用程序,因此在客户端启动时不会知道所有节点地址和端口。
现在需要列出连接字符串的所有地址。
即将推出瘦客户端发现功能,它将跟踪拓扑更改并将快照保存在客户端。实施细节: https://cwiki.apache.org/confluence/display/IGNITE/IEP-44%3A+Thin+client+cluster+discovery
根据工单,目标版本是 2.9。我想,目标日期是九月份的某个时候。
添加到 Alexander 的回答中: 您可以在预发布版本中尝试瘦客户端发现功能: https://www.nuget.org/packages/Apache.Ignite/2.9.0-alpha20200710
当 IgniteClientConfiguration.EnablePartitionAwareness
为 true
时启用此功能。您最初只能提供一个服务器地址,Ignite 将发现其他服务器并连接到它们,然后在节点加入或离开时保持集群信息最新。
请记住,该过程是异步和惰性的 - 当您使用 Ignite API 时,它会接收集群更新。当您什么都不做时,Ignite 也会闲置。
完整文档随正式版本一起提供。
检查了 Apache Ignite 2.9.0 中的瘦客户端自动发现功能,它运行良好:瘦客户端直接向所有 3 个实例发送请求。