Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在kubernetes中配置Spring redis sentinel_Kubernetes_Redis_Spring Data Redis_Lettuce_Redis Sentinel - Fatal编程技术网

如何在kubernetes中配置Spring redis sentinel

如何在kubernetes中配置Spring redis sentinel,kubernetes,redis,spring-data-redis,lettuce,redis-sentinel,Kubernetes,Redis,Spring Data Redis,Lettuce,Redis Sentinel,我有一个redis sentinel主从设置,有1个主设备和3个从设备,这是在Kubernetes环境中。在spring莴苣配置中,我必须用端口号指定sentinels URL。我应该如何为每个哨兵指定URL?指定IP和端口。在本地可以,但在k8s中,我应该如何配置?我用安装了设置。下面是如何在本地完成的 @Bean public RedisConnectionFactory lettuceConnectionFactory() { RedisSentinelConfiguration

我有一个redis sentinel主从设置,有1个主设备和3个从设备,这是在Kubernetes环境中。在spring莴苣配置中,我必须用端口号指定sentinels URL。我应该如何为每个哨兵指定URL?指定IP和端口。在本地可以,但在k8s中,我应该如何配置?我用安装了设置。下面是如何在本地完成的

   @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);
}

谢谢

在启用哨兵的情况下安装头盔图表

helm install my-release bitnami/redis --set sentinel.enabled=true

将创建一个名为my release redis的服务,并可通过my release redis.namespacename.svc.cluster.local:26379从任何名称空间和同一名称空间访问该服务。使用
my release redis:26379

首先,使用bitnami helm图表是正确的方法事情

虽然有点不同的实现方式,但以下是我们如何实现相同的主从设置并避免上述问题,同时确保我们所见证的最大可用性(主从停机时间少于2秒)

  • 我们为主人和奴隶做了两件事

  • 在从机和主机之间共享的PV PVC,其中只有主机可以写入,而从机只能从PV读取

  • 通过这种方式,我们可以确保在为从机提供的无头服务之后,始终有1个pod在为主机运行,N个副本在运行


在应用程序中,从属URL和主URL总是不同的,因此确保了清晰的“写”和“读”隔离,提高了系统的稳定性,几乎没有读取故障。

我知道创建了我的reelase redis服务。但是我应该在我的sentinel()中提供什么方法作为参数。我应该为每个sentinel pod重复服务名称和端口还是只重复一次?您可以使用服务名称一次。在幕后,它将连接到一个PodsHank以进行响应。但是,当我安装图表时,redis将有两个服务。一个是redis,另一个是redis-headless。我的理解是我应该使用headless svc作为url参数。对吗?如果你看helm安装输出,它说明了如何访问sentinel,我想我在那里看到了redis,而不是headless