我有一个redis sentinel master-slave设置,有1个master和3个slave,这是在kubernetes环境中。在spring-莴苣配置中,我必须用端口号指定sentinels url。我应该如何为每个sentinel指定url?spring doc指定ip和端口。在本地可以,但在k8s中,我应该如何配置?我安装了bitnami redis图表。下面是如何在本地完成的。
@Bean
public RedisConnectionFactory lettuceConnectionFactory() {
RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration()
.master("mymaster")
.sentinel("127.0.0.1", 26379)
.sentinel("127.0.0.1", 26380);
return new LettuceConnectionFactory(sentinelConfig);
}
谢谢
2条答案
按热度按时间iih3973s1#
在启用哨兵的情况下安装舵图
名为的服务
my-release-redis
将创建并可通过my-release-redis.namespacename.svc.cluster.local:26379
从任何名称空间和同一名称空间使用my-release-redis:26379
1mrurvl12#
第一件事->使用bitnami Helm 图是正确的做事方法。
虽然有点不同的实现方式,但下面介绍了我们如何实现相同的主从设置,并在确保所见证的最大可用性(主服务器的停机时间不到2秒)的同时避免了上述问题
我们做了两件事,一件是主人的事,另一件是奴隶的事。
一种在从机和主机之间共享的pvpvc,其中只有主机可以写入,而从机只能从pv读取
通过这种方式,我们可以始终确保在为从机提供无头服务之后,有1个pod一直在为主机运行,而有n个副本在运行。
在应用程序中,从url和主url总是不同的,从而确保了清晰的“写”和“读”隔离,并在几乎没有读失败的情况下提高了系统的稳定性。