2

问题:我有一个服务器场,它使用非粘性 IP 和一个会话服务器来维护所有服务器的会话。所以客户端返回到哪个服务器并不重要,因为服务器总是会去会话服务器获取客户端的会话数据。当我关闭会话服务器时,所有服务器都会丢失它们的会话数据。

此问题的解决方案之一是使用 SQL Server 作为会话服务器。不幸的是,这是不可能的。

所以我在考虑 Memcached。如果我使用 memcached 管理我的会话,我仍然会遇到如果我关闭其中一个 memcached 服务器会丢失会话的问题。但是,如果我可以对该服务器发出调用“将您的缓存重新分配到其他服务器”的调用,那么这应该可以解决问题。

您将如何将 memcached 的缓存从正在关闭的服务器重新分配到其他服务器?

4

2 回答 2

1

我不确定 memcached 中是否有这样的功能。但是,关键是,它是缓存。如果服务器出现故障或重新启动,最糟糕的情况是您会遇到一些缓存未命中(直到它被重建)。Memcached 不应该是一个可靠的数据库(尽管有一个基于 memcached 的数据库)——您的数据也应该保存在某个较低的持久级别,并且当缓存服务器每次宕机时您也不应该担心只要它不会使您的整个缓存无效并且不会经常发生。

于 2009-02-24T20:52:09.657 回答
0

您是否考虑过使用 SQL Server 来维护会话状态?

将 SQL Server 用于 ASP.Net 会话状态

ASP.NET 会话状态 (MSDN)

于 2009-02-24T21:21:48.633 回答