gpt4 book ai didi

amazon-elasticache - 使用 AWS ElastiCache 的 Spring Cache 在同一集群中的不同缓存

转载 作者:行者123 更新时间:2023-12-03 21:34:34 25 4
gpt4 key购买 nike

我正在努力解决 http://cloud.spring.io/spring-cloud-aws/spring-cloud-aws.html将 Spring Cache 集成到我们的 AWS 应用程序中。

有人可以向我解释如何正确封装不同的 @Cacheable类(class)使用指南?

据我所知,当您使用 @EnableElastiCache 时您需要在注释中指定在 AWS 中创建的 Elasticache 集群的名称:

@EnableElastiCache( @CacheClusterConfig( name = "myAwsCluster", expiration = 300 ) )

然后,您必须使用与 @Cacheable 中的缓存名称相同的集群名称。类(class):
@Cacheable( "myAwsCluster" )
public String expensiveMethod()

除非我遗漏了什么,否则这完全破坏了封装,因为您必须将注释上的值与您在 AWS 中创建的物理资源联系起来。我是不是遗漏了什么,或者这就是 Spring Cloud 希望你工作的方式?

此外,这意味着您需要为每个 Spring 启动一个单独的 AWS ElastiCache 集群 Cache您想要使用的类,使其变得非常昂贵并禁止资源共享。
@CacheConfig( "myAwsCluster" )
public class Class1
{
@Cacheable
public void something()
{
...
}
}

@CacheConfig( "mySecondAwsCluster" )
public class Class2
{
@Cacheable
public void somethingElse()
{
...
}
}

最佳答案

@EnableElastiCache鼓励缓存的物理分离,这可能不是人们一直需要的。

而不是使用 @EnableElastiCache , 使用 @EnableCaching用于缓存配置。它可以指向 Elasticache . Elasticache 的示例配置与 Redis启用集群模式。

spring.redis.cluster.nodes=<Elasticache Configuration endpoint>

现在您可以使用 @Cacheable与逻辑缓存名称。

关于amazon-elasticache - 使用 AWS ElastiCache 的 Spring Cache 在同一集群中的不同缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37791193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com