Scala 如何在应缓存的参与者之间共享数据
我有一个“主要”演员,创造了许多儿童演员 子参与者执行工作,他们都需要访问我必须从数据库检索的数据 我想缓存这些数据,因为每个参与者访问数据库获取这些数据会占用大量资源,而且不会经常更改(我已经有了一个很好的缓存失效策略) 例如,“我的孩子”演员需要:Scala 如何在应缓存的参与者之间共享数据,scala,akka,Scala,Akka,我有一个“主要”演员,创造了许多儿童演员 子参与者执行工作,他们都需要访问我必须从数据库检索的数据 我想缓存这些数据,因为每个参与者访问数据库获取这些数据会占用大量资源,而且不会经常更改(我已经有了一个很好的缓存失效策略) 例如,“我的孩子”演员需要: 帐目 使用者 等等 这些对象需要从数据库中加载 我如何加载这些对象,并以某种方式与所有其他参与者共享它们 最好的方法是创建一个引用guava缓存的共享类吗 注 我不想要分布式缓存,我认为内存缓存就足够了。这里基本上有两种方法: 为每个参与者提供对
我不想要分布式缓存,我认为内存缓存就足够了。这里基本上有两种方法:
方法2需要更多的参与者,但给了您更多的灵活性。但是,如果只添加一个其他参与者来访问缓存,则会造成另一个瓶颈。缓存未命中将阻止访问缓存的所有其他参与者。为此,您希望有多个参与者,这样您就可以a)真正同时访问缓存,b)在缓存未命中时不阻止依赖于缓存的特定参与者。对于方法1,我可以在将工作发送给子参与者之前添加缓存数据,所以它总是存在的。你的意思是当你实例化actor时,你给它一个缓存对象的引用,该缓存对象包含它需要的所有数据?那么您的参与者永远不会从缓存中请求尚未缓存的内容?我想我不会把它叫做缓存。