Iis 7 AppFabric 1.1有多少DataCacheServerEndpoint';客户端应该连接到什么?

Iis 7 AppFabric 1.1有多少DataCacheServerEndpoint';客户端应该连接到什么?,iis-7,appfabric-cache,Iis 7,Appfabric Cache,AppFabric 1.1客户端文档讨论将DataCachServer端点列表分配给DataCacheFactoryConfiguration。大多数示例显示的列表由一个或两个不同的缓存服务器组成。如果集群由n台服务器组成,客户端是否应该注册每台服务器?服务器注册的顺序是否重要?例如,如果我的web层中有50台服务器,缓存层中有5台服务器,那么50台web服务器中的每台服务器是否都注册了所有5台缓存服务器?以下是示例代码: // Declare array for cache host(s).

AppFabric 1.1客户端文档讨论将DataCachServer端点列表分配给DataCacheFactoryConfiguration。大多数示例显示的列表由一个或两个不同的缓存服务器组成。如果集群由n台服务器组成,客户端是否应该注册每台服务器?服务器注册的顺序是否重要?例如,如果我的web层中有50台服务器,缓存层中有5台服务器,那么50台web服务器中的每台服务器是否都注册了所有5台缓存服务器?以下是示例代码:

// Declare array for cache host(s).
DataCacheServerEndpoint[] servers = new DataCacheServerEndpoint[5];
servers[0] = new DataCacheServerEndpoint("Cache01", 22233);
servers[1] = new DataCacheServerEndpoint("Cache02", 22233);
servers[2] = new DataCacheServerEndpoint("Cache03", 22233);
servers[3] = new DataCacheServerEndpoint("Cache04", 22233);
servers[4] = new DataCacheServerEndpoint("Cache05", 22233);

// Setup the DataCacheFactory configuration.
DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration();
factoryConfig.Servers = servers;

// Create a configured DataCacheFactory object.
DataCacheFactory mycacheFactory = new DataCacheFactory(factoryConfig);

// Get a cache client for the cache named "default".
DataCache myDefaultCache = mycacheFactory.GetCache("default");
每个web服务器的注册是否相同,负载是否会在缓存层之间平衡?如果注册的服务器不可用,下一个服务器是按顺序尝试的,还是随机化的?链接到支持文件会很有帮助

与负载平衡相关,写了以下[是否有其他文档可用]

App fabric client是智能客户端,它可以直接与服务器联系,任何服务器都有您的数据。应用程序不必担心负载平衡。这是使用路由客户端完成的


根据一些测试,并让Jason Roth的评论进入,我认为“智能客户端”使用DataCacheServerEndPoint在DataCacheFactory上调用GetCache方法时检索缓存集群成员列表。DataCache对象是一个智能的对象,它是智能的,因为如果DataCacheServerEndpoint实例化中使用的服务器脱机或不可用,智能客户端仍然可以访问其他集群成员。因此,多个DataCacheServerEndpoint列表的目的是在调用GetCache方法时提供冗余

建议是DataCache对象应该遵循单例模式,而不是在每次从缓存请求数据时进行实例化。这就是为什么不需要为各个DataCacheServerEndpoints进行负载平衡或提供VIP

根据需要实例化尽可能多的DataCacheServerEndPoints,以确保至少有一个始终处于启动状态——不需要添加缓存集群的每个成员,除非这是确保至少有一个处于启动状态的唯一方法


当涉及缓存集群中的管理箱(例如,应用月度补丁)时,考虑通过一次只管理一个框来最小化缓存抖动和重新平衡,而不是尝试在“WAVE”中管理框组。基于某些测试,

< P>,并允许Jason Roth的评论沉入其中,我认为在DataCacheFactory上调用GetCache方法时,“智能客户端”使用DataCacheServerEndPoint来检索缓存集群成员列表。DataCache对象是一个智能的对象,它是智能的,因为如果DataCacheServerEndpoint实例化中使用的服务器脱机或不可用,智能客户端仍然可以访问其他集群成员。因此,多个DataCacheServerEndpoint列表的目的是在调用GetCache方法时提供冗余

建议是DataCache对象应该遵循单例模式,而不是在每次从缓存请求数据时进行实例化。这就是为什么不需要为各个DataCacheServerEndpoints进行负载平衡或提供VIP

根据需要实例化尽可能多的DataCacheServerEndPoints,以确保至少有一个始终处于启动状态——不需要添加缓存集群的每个成员,除非这是确保至少有一个处于启动状态的唯一方法

当涉及缓存集群中的管理箱(例如,应用月度补丁)时,考虑通过每次只管理一个框来最小化缓存抖动和重新平衡,而不是试图在“WAVE”中管理框组。