将服务器节点添加到集群
NCache 集群是动态的,支持将服务器节点添加到正在运行的缓存集群中。 当新的缓存服务器启动时,它会自动加入现有的缓存集群。 如果缓存拓扑需要,已连接到已启动并运行的缓存集群的缓存客户端会自动连接到新的缓存服务器。
将节点添加到缓存
使用 NCache 管理中心
启动 NCache 管理中心通过浏览 http://localhost:8251 or
<server-ip>:8251
在 Windows 和 Linux 上。在左侧导航栏中,单击 集群缓存. 这将打开一个新页面
<server-ip>:8251/
。 该页面显示任何现有的本地或集群缓存以及服务器和服务器平台等其他详细信息。针对缓存名称,单击 点击观看截图.
这将打开缓存的详细配置页面。 这 服务器节点 选项卡显示缓存的现有服务器节点的列表和状态。
点击 按钮并指定服务器节点IP。 将显示成功通知。
- 新添加的节点显示在服务器节点列表中。
使用命令行工具
添加节点 允许将新服务器节点添加到指定服务器上的现有集群缓存。 它还允许用户在集群缓存中拥有多个服务器节点。
此命令将新节点 20.200.20.40 添加到服务器节点 20.200.20.39 上现有的名为 demoClusteredCache 的缓存中。
Add-Node -CacheName demoClusteredCache -ExistingServer 20.200.20.39 -NewServer 20.200.20.40
为了保证新节点加入集群,需要使用以下命令启动缓存 开始缓存 工具:
Start-Cache -Name demoClusteredCache
有关这些 cmdlet 的更多属性,您可以参考 NCache 命令行参考.
验证节点添加成功
要验证服务器节点是否成功添加,请打开命令行并使用 获取缓存 cmdlet(附带 NCache与... -Detail
参数给出在缓存服务器上注册的所有缓存的详细状态。
例如,在本例中,您应该看到 demoClusteredCache 的集群大小为 2,其中列出了每个缓存服务器的 IP 地址。 已添加的节点现在将存在于列表中。 输出还显示其他缓存信息,例如项目计数和状态。
Get-Caches -Detail
拓扑明智的行为
下面描述了将新的缓存服务器添加到正在运行的缓存集群时的特定于拓扑的行为。
分区缓存
状态转移:
状态转移 NCache 意味着自动将数据从一个缓存服务器移动或复制到另一个缓存服务器。 在分区缓存中,数据在运行的缓存服务器之间进行分区。 所以当一个新的缓存服务器加入集群时,会自动创建一个新的分区,并相应地改变数据分布。 然后这个缓存服务器通过状态传输获得它的数据份额。 因此,如果集群中有 2 台缓存服务器,并且每个缓存服务器的分区中有 1GB 的缓存数据,那么在新的缓存服务器加入集群并完成相应的状态传输后,每个缓存服务器现在都保存大约 600MB 的数据.
客户端连接:
在分区缓存中,数据在所有正在运行的缓存服务器之间进行分区。 因此,缓存客户端与每个缓存服务器连接,以便它们可以一跳访问所有数据。 当新的缓存服务器加入集群时,数据分布图会发生变化,新的缓存服务器会出现在集群中。 HashMap
被生成。 然后, HashMap
引发更改事件并通过它通知所有正在运行的缓存客户端。 然后,它们自动与这个新的缓存服务器建立连接,并开始向其发送请求。
复制缓存
状态转移:
在复制缓存中,每个缓存服务器保存整个缓存,因此保存相同的数据集。 因此,当新的缓存服务器加入集群时,它会通过状态转移从现有的缓存服务器中获取整个缓存的另一个副本。
客户端连接:
在复制缓存中,每个客户端仅连接到一台缓存服务器,因为它拥有整个缓存。 缓存客户端在所有正在运行的缓存服务器之间进行负载平衡,以将请求负载平均分配给它们。 您可以在客户端配置中关闭客户端的负载均衡 客户端.ncconf 文件或通过指定 CacheConnectionOptions.LoadBalance
中标记为 false 获取缓存 方法。
当新的缓存服务器加入复制缓存中的缓存集群时,如果负载平衡配置为“true”,则每个现有缓存服务器都会要求其某些客户端移动到新加入的缓存服务器。 通过这种方式,客户端在所有缓存服务器之间重新平衡。 如果负载平衡配置为“false”,则所有这些都不会发生,并且客户端将保持与其之前的缓存服务器的连接。
服务器节点可以随时添加到集群缓存中。