单独的缓存主机进程
以前, NCache 服务和所有缓存实例都限制在一个进程内。 这意味着如果进程崩溃,服务以及缓存及其资源信息(内存、地址、端口)都会丢失。
NCache 现在通过为服务提供一个单独的进程并为每个缓存主机提供一个专用进程来提供更高的可靠性。
备注
此功能也可用于 NCache Professional.
客户端与缓存的通信
客户端与缓存主机的初始通信是 2 跳通信:
它首先与服务交互,服务使用端口转发机制将客户端连接到缓存主机。
然后它使用端口转发与缓存进行通信。 客户端的所有未来交互都直接与缓存进行。
当缓存在其自己的单独进程中启动时,它会被分配一个管理端口,服务将在该端口上与其通信。 该端口是从一个范围动态生成的(默认 8300 – 8400,可在 服务.exe.config).
备注
请注意,在分区副本拓扑的情况下,将分配两个端口。
一旦端口被转发,客户端就会将所有缓存请求发送到缓存,例如将项目添加到缓存,或者从缓存中获取或删除它们。
如果缓存主机进程之一停止,该缓存用于通信的端口将添加回可用端口池。 例如,如果分区副本节点正在使用端口 8301 和 8302,并且进程终止,则这些端口将可供任何其他缓存使用。 现在,当进程启动新的缓存时,端口 8301 可以重新用于该缓存。
以前,一旦端口被分配给缓存,它就被视为已使用 - 无论缓存状态如何。 这意味着端口范围不由自主地缩小了。
服务器与缓存的通信
服务器通过动态生成的管理端口与缓存主机进行通信。 所有管理操作均通过此途径进行。
如果服务重启怎么办?
服务重启的情况下,缓存进程不会丢失,但需要 redis覆盖他们以前的状态将会出现。 这意味着服务必须确保哪些缓存在崩溃之前正在运行,以及它们的凭据(例如进程 ID、端口等)。 这 redis因此,covery 保证了缓存进程不处于僵尸状态。
有两种工具用于 redis覆盖:
Windows 管理规范服务 (WMI)
一种标准化服务,用于访问、整合和共享企业环境中的设备、应用程序和服务器的管理信息。 您可以运行 执行程序 工具或命令行工具 WMIC 获取有关服务的信息。
示例:
wmic PROCESS WHERE (Description=”Alachisoft.NCache.Service.exe”)
您可以使用多个其他命令 Windows Management Instrumentation 命令行工具.
网络统计工具
该命令行工具显示传入和传出 TCP 通信的网络连接、路由表和网络协议统计信息。 你可以 redis通过查看正在使用的活动连接和端口来覆盖丢失的有关缓存的信息。 端口范围内的任意端口 服务.exe.config 将指示使用端口的缓存主机。
示例:
netstat –o
将显示每个活动连接的本地地址、外部地址、状态和进程 ID。
有关此工具的更多详细信息,请访问 Microsoft 的 Technet 页面。