我有一个基于服务的架构,其中充满 asp 客户端的网络场访问 WCF 服务的应用程序服务器场。显然所有的数据库访问都是由 WCF 服务完成的。现在我想在服务层级别使用 Velocity 缓存我经常使用的数据库检索对象。我正在考虑让每个物理应用服务器也成为缓存集群的一部分。
根据 Velocity 文档,如果我使用区域,则对象仅存储在单个主机上。如果每个主机都保留自己的缓存,我实际上不会有任何问题,前提是我可以以某种方式同步它们。
所以我的问题是
- 如果我在一台主机上创建一个区域,它是否也在另一台主机上创建?
- 当我清除缓存区域时,它是否只在一台主机上被清除?
- 如果我在所有主机上订阅区域级通知,我可以在另一台主机上捕获一台主机的事件吗?
- 在这种情况下,我应该使用区域还是远离它们?
我希望我的问题很清楚。实际上我对问题的解决方案比对问题的答案更感兴趣
最佳答案
是的,您在阅读该区域将仅存在于一台主机中的文档时是正确的。
“如果每个主机都保留自己的缓存,我实际上不会有任何问题,前提是我可以以某种方式同步它们。”
当您说同步时,您的意思是何时启用 HA?如果这就是您的意思,Velocity 实际上会解决这个问题。
对于问题: 1. 没有。 2. 是的 3.通知将发送给客户端。所以我不确定是否有向其他主机发送通知的方法。 4. Regions 提供了搜索功能并剥夺了您的 HA。在您的情况下,您可以利用 HA 的优势。
关于wcf - 使用 WCF 在 Velocity/AppFabric 中缓存区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2050818/