我有一个包含许多正在运行的Web服务器实例的Web服务器群集。每个实例在其本地内存中缓存一些配置,原始配置存储在数据库中。
这些配置用于每个请求,因此出于性能原因,缓存可能是必需的。
我想提供一个管理页面,管理员可以在其中更改配置。如何更新每个服务器实例中的所有缓存?
现在我有两个解决方案:
pub/sub
机制通知每个实例(例如使用redis)。 对于解决方案1,缺点是更改不能立即生效 对于解决方案2,我想知道,如果pub / sub会影响Web服务器的性能。
哪一个更好?或者这个问题有什么共同的解决方案吗?
答案 0 :(得分:0)
选项1的另一个缺点是您会不必要地定期点击数据库。
如果您已经在使用Redis,则选项2是一个很好的解决方案。我已经成功使用它,无法想象仅仅因为您使用pubsub会对性能产生影响。
另一种选择是在每个网站上创建缓存失效网址,例如/ admin / cache-reset /,让管理工具在每台服务器上调用缓存重置URL。此解决方案的缺点是您需要维护服务器列表。如果您还没有使用Redis,那么它可能只是您正在寻找的简单/实用/低技术解决方案。