2012-04-28 52 views
2

我很难弄清楚APPFabric缓存或SQL Server应该在我们需要的上下文中使用(考虑到我们当前正在使用SQL服务器的事实)。APPFabric缓存或SQL服务器 - 特定场景

我们只需要(现在)缓存与其中一个应用服务器(外发请求)发送的特定请求相关的信息对应的每个小块数据(〜16KB)。

任何应用服务器都可以接收与初始传出请求相关的传入请求,并且对于我们的需要,我们需要找回与此传出请求关联的原始信息...因此,我们无法保留本地内存缓存在每个应用服务器中,因为我们无法确定传入的请求是否会到达发送传出请求的应用服务器。尽管我们基本上只需要坚持16kb的信息一次(很少有更新的可能性),并且能够从任何应用服务器访问它,但只能在广阔的区域访问它一次大部分情况。 因此,基本上大部分时间都是从应用服务器(缓存)写入,之后从相同或另一个应用服务器读取。

在这个特定的上下文中,是否有任何获得通过AppFabric缓存集群而不是直接进入数据库(考虑到它将是一个简单的插入/选择语句)?

记住可扩展性,这意味着我们目前没有put_data/get_data操作的高吞吐量(~160ops/sec),但我们可能会达到1K/s .. 10k/s,并且在不久的将来可能会更多。

在此先感谢您的答案。

回答

1

与SQL DB相比AppFabric Cache的收益将是访问时间。由于AppFabric将所有内容存储在内存中(RAM),因此您需要更快地访问AppFabric,而SQL需要从磁盘查询其数据。

AppFabric Cache的缺点是,除非您在群集中实施HA(高可用性),否则系统出现故障时可能会丢失数据,否则可能会丢失数据。 SQL DB在这里获胜是因为它支持数据可恢复性(通过备份日志 - LDF),如果数据库系统发生故障。

如果您需要有保证的消息传递,由于其强大的数据恢复支持,您可能不应该使用AppFabric缓存集群,而是使用SQL DB进行临时持久化。