gpt4 book ai didi

appfabric - 关于AppFabric的缓存功能如何使用的问题

转载 作者:行者123 更新时间:2023-12-03 01:34:15 24 4
gpt4 key购买 nike

有关如何使用 AppFabric 的缓存功能的问题。

很抱歉问了一个我应该能够从文档中回答的问题,但我已经阅读、阅读和搜索,但无法回答这个问题,这让我相信我对 AppFabric 的缓存有根本性的理解错误功能的目的是。

我在一家地理位置分散的公司工作。我们有一个特定的应用程序,最初是作为客户端/服务器应用程序编写的。它是如此庞大且对业务至关重要,以至于我们希望逐步将其转换为更好的架构解决方案。

我们的想法之一是使用 WCF 调用转换应用程序以读取其数据,该调用位于同一位置的 Web 服务器上,该服务器将缓存与美国数据库的通信。该应用程序的性质是,每个人都会倾向于查看相同的 2000 条左右记录,并且仅偶尔进行更新,并且这些更新将由有限的用户组进行。

我希望 AppFabric 的缓存机制允许我设置一个全局缓存,例如,当亚洲的用户请求不在缓存中或过时的数据时,Web 服务器将从数据库中读取美国,向用户提供数据,然后更新缓存,该缓存会将数据传播到其他网络服务器,以便他们知道不要自己返回数据库。

AppFabric 可以这样工作吗?还是我应该让服务器从数据库中检索自己的数据?

最佳答案

所以如果我理解正确的话,你有:

  • 美国的数据库服务器
  • 世界各地的网络服务器?
  • (可能)位于美国的 AppFabric 缓存

AppFabric 为您提供了两种可能的方法来解决这种情况。

  1. 本地缓存
    在 AppFabric 设置中,客户端能够拥有对象的本地缓存,其中对对象的缓存的第一次调用会将对象放置在本地缓存中,并且从本地缓存满足对该对象的后续请求。由于超时或主缓存通知本地缓存该对象已过时,对象会从本地缓存中删除。您可以在 web.config 中进行配置:

    <dataCacheClient>
    <localCache isEnabled="true" sync="NotificationBased" ttlValue="300" />
    </dataCacheClient>

    就您而言,您的网络服务器是客户端;当您的亚洲用户之一请求某个对象时,亚洲 Web 服务器的本地缓存将保存该对象的副本。对该对象的更新将传播到主缓存,并且在基于通知的设置中,其他 Web 服务器上的本地缓存中该对象的副本将失效,以便下一个请求将从主缓存满足,然后本地缓存将使用更新后的对象进行刷新。

  2. 将 AppFabric 缓存放在 Web 服务器上
    没有什么可以阻止您的 Web 服务器也成为 AppFabric 缓存服务器!在此设置中,您不会使用本地缓存,因为当主缓存已经位于客户端本地时,它没有意义。但是,这将确保您的客户端始终从缓存中提取最新版本的缓存对象。
    不过,您需要小心网络负载,因为此设置可能意味着您的美国 Web 服务器始终从(例如)欧洲 Web 服务器读取缓存对象,这可能会减慢您的服务器在尝试服务缓存请求时的速度以及网络流量。

在这两种情况下,请记住,虽然您的客户端将收到最新版本的缓存对象,但 AppFabric 中没有持久性,您需要在更新缓存对象的同时将更改写入数据库,否则您面临将过时数据读入缓存的风险。

关于appfabric - 关于AppFabric的缓存功能如何使用的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3018089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com