同步 Bridge 中的缓存 - 异地复制
NCache 内存中的分布式缓存集群是 自愈、动态且高度可扩展。 您可以在运行时添加或删除缓存服务器,而无需停机。 这 NCache 集群在处理应用程序请求处理和数据方面提供线性可扩展性。 当您的缓存集群达到峰值限制时,您可以添加更多服务器 redis致敬请求和数据负载。
如果缓存服务器出现故障,缓存集群会自动检测服务器故障并进行相应调整。 让我们考虑一个缓存服务器宕机的情况 分区副本 拓扑结构中,缓存集群会自动重新排列分区和数据。 剩余的缓存服务器复制从其备份服务器停机的服务器的剩余数据。
每个集群缓存都有一个专用的基于 TCP 的集群。 应用程序通过 TCP 与缓存集群通信。 所以,如果应用程序进程宕机,不会影响缓存集群。 在配置集群缓存时,每个缓存集群都需要一个单独的 TCP 端口。 这 分区副本 拓扑为副本占用一个额外的 TCP 端口。
对等架构 允许每个缓存服务器与其他每个缓存服务器建立 TCP 连接。 这使得缓存服务器能够在必要时直接相互通信,或者在其他时间广播请求。 缓存集群、多线程架构允许在 并行,从而获得当今强大硬件的好处。
您还可以 配置请求超时 在配置缓存集群时用于缓存集群。 默认请求超时为 60 秒。
备注
此功能也可用于 NCache Professional.
备注
分配给缓存集群的集群端口应在所有已配置的缓存服务器上可用。 同样,防火墙应配置为允许给定集群端口上的缓存服务器之间进行通信。 默认集群 端口范围 从开始 7800.
内存中分布式缓存中的集群协调器
在分布式环境中,不同任务的协调是不可避免的。 在缓存集群中,协调服务器扮演着这个至关重要的角色。 每个缓存集群都有一个协调缓存服务器。
协调器服务器的选择 NCache 很简单。 最高级的缓存服务器承担协调服务器的角色。 因此,首先加入集群的缓存服务器成为协调服务器。 如果协调器缓存服务器离开缓存集群 优雅 或者突然,下一个最高级的缓存服务器成为协调器。
协调器缓存服务器负责以下工作:
集群成员: 协调服务器负责接受新缓存服务器的成员资格请求。 它还将更新的成员列表广播到其余服务器。 类似地,当服务器离开集群时,协调服务器会通知其他服务器有关成员资格的更改。
请求订购: 添加 和 更新 中的数据 复制拓扑 要求所有缓存服务器上的操作都按照相同的顺序执行,以达到数据的一致性。 这些操作从协调服务器获取序列令牌,并根据这些序列令牌执行操作。 这种机制保证了针对给定的相同更新
CacheItem
应用于整个集群。缓存数据加载器和刷新器管理: 缓存启动加载器和刷新器 任务在协调服务器上执行。 当多个 分发提示 为Cache Startup Loader或Refresher指定,协调器将这些提示分配给不同的集群成员以并行加载和刷新。
数据失效和驱逐: 每个缓存服务器 已复制 和 镜子 拓扑包含相同的数据集。 因此,协调服务器负责数据失效(到期 和 依赖)跨越整个集群。 协调器服务器确定哪些项目将被 过期 or 被驱逐 从缓存中,它通过集群调用从整个集群中删除这些项目。
服务器如何加入和离开内存分布式缓存中的缓存集群
以下是服务器节点加入和离开缓存集群的过程:
成员发现和服务器加入
当您在第一台缓存服务器上启动缓存时,它会形成缓存集群。 成员发现过程在缓存启动时在每个缓存服务器上运行。 在发现过程中,缓存服务器尝试与服务器上的其他缓存成员建立 TCP 连接。 配置的集群端口.
当第一台缓存服务器启动时,无法与缓存集群中的其他缓存服务器建立连接,则认为没有其他缓存服务器启动。 该服务器随后成为缓存集群的第一个成员和协调服务器。 一旦其他服务器启动,它们就会通过相同的发现过程并与正在运行的缓存服务器建立连接。
这些缓存服务器从已经运行的缓存服务器中寻找有关缓存集群的协调服务器的信息。 一旦发现过程结束并确定了协调器服务器,新加入的缓存服务器就会向协调器发送加入请求。
协调器接受加入请求,生成分布图(仅在 分区的 和 分区副本 拓扑),并将新的成员列表广播到整个缓存集群。
优雅地离开服务器
当你 停止缓存 通过在缓存服务器上 NCache 管理中心 or PowerShell 工具,离开缓存服务器通过发送离开请求来通知协调器。 协调器立即处理离开请求并生成分布图,并将新的成员列表广播到整个集群。 因此,集群根据新的分布图快速调整。
服务器突然故障
在某些情况下,缓存服务器可能会在没有通知协调器的情况下突然关闭,即电源故障。 当缓存服务器突然关闭时,离开服务器和其他缓存服务器之间的 TCP 连接会中断。 他们尝试与离开的服务器重新建立 TCP 连接以进行可配置的重试次数。 这种机制有助于从临时连接故障中恢复并防止服务器错误的死亡声明。
一旦连接重试结束,给定的缓存服务器就会结束突然离开的服务器的死亡。 一旦死亡结论,缓存服务器通知协调器。 尽管协调器可能已经发现缓存服务器失效,但在协调器发现服务器失效的情况下,其他缓存服务器提供的信息会导致快速成员资格调整。
无论情况如何,协调器都会生成新的分布图并在现有缓存服务器上广播新的成员资格列表。
心跳
是否检测到断开的 TCP 连接取决于通过该连接的流量。 例如,如果缓存集群很忙并且在不同的缓存服务器之间发送请求,那么会尽早检测到连接中断。 但是,如果缓存集群的活动性非常低,则检测 TCP 连接中断可能需要更多时间。
为了避免这个问题, NCache 集群有一个内置的 心跳机制 可以启用。 当集群处于空闲状态时, 心跳 消息在服务器之间定期交换。 就这样 心跳机制 在缓存服务器之间生成流量,并帮助对突然离开的服务器进行早期死亡检测。
唠叨
NCache 集群支持多个请求的并行执行。 期限 唠叨 是指将多个请求组合成一个请求,然后再通过 TCP 连接发送它们。 这增加了集群的吞吐量。 你可以配置 唠叨 及其阈值通过 服务配置文件.
集群成员更改警报
集群成员的变化是一项重要的活动。 所以, NCache 提供多种机制来通知缓存管理员和应用程序成员更改。
缓存日志: 缓存日志 是查找缓存管理员成员资格更改的第一个位置。
事件查看器: 会员加入和离开通知是 登录到事件查看器 在Windows上。
电子邮件警报: 您还可以 配置电子邮件警报 服务器加入和离开给定缓存的事件的数量。 每当发生成员资格变更时,都会生成一封电子邮件并发送给注册的电子邮件收件人。
应用程序级通知: 客户端应用程序也可以 注册通知回调 关于集群成员的变化。 每当集群成员更改发生任何更改时,都会调用这些回调。