小编Cra*_*Man的帖子

使用RabbitMQ使本地内存缓存中的陷阱失效

我有一个java Web服务器,目前正在使用Guava库来处理我的内存缓存,我大量使用它.我现在需要扩展到多个服务器(2+)以进行故障转移和负载平衡.在此过程中,我从进程内缓存切换到Memcache(外部服务).但是,我对结果并不十分印象深刻,就像现在几乎所有的调用一样,我必须对另一台服务器进行外部调用,这比内存缓存慢得多.

我在考虑不是从Memcache获取数据,而是可以继续在每台服务器上使用本地缓存,并在需要更新缓存时使用RabbitMQ通知其他服务器.因此,如果一台服务器对底层数据进行了更改,它还会向所有其他服务器广播一条消息,告诉它们它们的缓存现在无效.每个服务器都广播和监听缓存失效消息.

有谁知道这种方法的任何潜在缺陷?我有点紧张,因为我找不到其他人在生产中这样做.我看到的唯一问题是每个服务器需要更多内存(内存缓存),并且任何给定服务器可能需要更长时间才能获得更新数据.还要别的吗?

memcached web-services rabbitmq guava memorycache

12
推荐指数
1
解决办法
924
查看次数

标签 统计

guava ×1

memcached ×1

memorycache ×1

rabbitmq ×1

web-services ×1