appfabric cache配置,实验记录

官方中文文档

appfabric cache里,有主要主机(leadhost)这个概念。

在一些情况下,主要主机挂了,整个cache集群就挂了。

一、使用xml配置。

如果有2台leadhost,挂一个,全挂

如果有3台leadhost,可以挂一个,挂两个全挂。

http://msdn.microsoft.com/zh-cn/library/ee790895.aspx

 

“例如,设想下图中显示的六服务器缓存群集。在此示例中,主要主机执行群集管理角色,并将两个缓存主机指定为主要主机。

image

如果群集中的任一普通缓存主机出现故障,此群集可能会一直运行。非主要主机上的数据会丢失(假定未启用高可用性),但群集的其余部分会继续提供服务并存储数据。实际上,即使未指定为主要主机的四个缓存主机全部失去,群集仍可以保持运行。

只要其中一个主要主机出现故障,整个缓存群集就会关闭,因为不再是大多数主要主机在运行。若要减少此问题,您可以选择指定其他主要主机。”

 

以上是ms文档中的说明

 

 

二、使用sqlserver配置

工作组不允许使用sqlserver配置,只有域才可以。

每台cache服务器上的appfabric cache服务,都得用域用户启动(如果sqlserver和cache在同一台,这台貌似可以不用)

导出配置文件,修改,导入

http://msdn.microsoft.com/zh-cn/library/ee790910.aspx

“找到并编辑 partitionStoreConnectionSettings 元素中的 leadHostManagement 属性,该元素为 advancedProperties 元素的子元素。将其设置为 true 意味着被指定为主要主机的缓存主机将执行群集管理角色。将其设置为 false 意味着存储群集配置数据库的 SQL Server 的实例将执行群集管理角色。”

 

“当 SQL Server 执行群集管理角色时

如果群集的 leadHostManagement 设置为 false,则无论 leadHost 设置如何,每个缓存主机仅承担与缓存数据相关的非主要主机的普通责任。在这种情况下,用于存储群集配置设置的 SQL Server 实例还用于执行群集管理角色。

如果发生服务器故障时

在 SQL Server 执行群集管理角色时,为了使群集保持可用,一个或多个缓存主机必须能够访问 SQL Server 数据库。

例如,设想下图中显示的六服务器缓存群集。

 

image

在此示例中,SQL Server 执行群集管理角色,所有六个缓存主机可以将其资源专用于缓存客户端的数据访问。

如果群集中的任何一个缓存主机发生故障,则这些服务器上的数据都会丢失(假定未启用高可用性),但群集会继续运行。其他缓存主机上的数据会继续提供给缓存客户端。事实上,在这种情况下,如果群集丢失了六个缓存主机中的五个,它仍可以继续工作。”

 

按照这种设置方式,不论那台cache down了,都不影响(全down自然不行),只要sql server不down。

 

ps:我在使用sql server 2008 r2 express做测试的时候,我的sql实例是sqlexpress。

在与sql同一台的机器上,设置sql连接时,使用.\sqlexpress设置

而在别的机器上设置sql连接时,使用ip\sqlexpress,机器名\sqlexpress都提示远程连接有问题,为这个远程连接整死了。

最后发现不需要输入sql实例名只要输入ip即可,不解

我没有使用文档中提供的命令形式,只是图形界面操作的

文档

 

三、客户端

1、在host中把上面设置好的host都加进去,这样有一个down了也没关系

2、网上一些教程说需要引用2个dll,但其实是4个。如果是vs里引用的,他会自动把另外那两个引进去,但是如果是自己手动copy,就要注意多copy两个

Microsoft.ApplicationServer.Caching.Client.dll

Microsoft.ApplicationServer.Caching.Core.dll

Microsoft.WindowsFabric.Common.dll

Microsoft.WindowsFabric.Data.Common.dll

以上4个dll,在appfabric的安装目录下可以找到

 

服务器是08 r2,x64的,开发机是x86的,我没有测试拿x64的dll在x86的机器上开发会怎样,估计是会有问题。我直接找到x86的dll开发,放到服务器上时,再替换成x64的。

你可能感兴趣的:(cache)