我有一个基于服务的架构,其中一个充满asp客户端的Web服务器场点击了WCF服务的应用服务器场。显然,所有数据库访问都是由WCF服务完成的。现在我想在服务层级使用Velocity缓存我经常使用的数据库检索对象。我正在考虑让每个物理应用服务器也成为缓存集群的一部分。
根据Velocity文档,如果我使用区域,则对象仅存储在单个主机上。如果每个主机保留它自己的缓存,我实际上不会有任何问题,只要我能以某种方式同步它们。
所以我的问题是
我希望我的问题很明确。实际上,我对问题的解决方案比对问题的答案更感兴趣
答案 0 :(得分:2)
是的,您正好阅读该区域仅存在于一个主机中的文档。
“如果每个主机保留自己的缓存,我实际上不会有任何问题,只要我能以某种方式同步它们。”
当您说同步时,您的意思是何时启用HA?如果这就是你的意思,Velocity实际上会照顾到它。
对于问题: 1.不。 是的 3.通知将发送给客户。所以我不确定是否还有向其他主机发送通知。 4.区域提供搜索功能并从您身上夺走HA。在您的情况下,您可以使用HA的优势。
答案 1 :(得分:1)
拥有区域并不一定意味着您没有HA。如果您创建自己的缓存(并且不使用'默认'缓存),您可以使用Secondarys = 1(HA on)创建它 现在让我们说你有4个缓存主机;定义区域时,它将同时具有主要和辅助主机。因此,该地区的每一项行动都将导致它被应用于两者。
禾企
答案 2 :(得分:1)
命名缓存在参与节点之间分发。命名区域位于单个节点上。区域可以是HA,但它们无法充分利用分布式缓存扩展,因为它们的对象加载不会分布在群集中的参与节点上。此外,如果仅使用“默认”缓存,则使用带有HA的命名缓存需要最少三个节点,而不是两个节点。