当前位置: 首页 > 知识库问答 >
问题:

主从复制IP解析客户端失败的Docker Swarm Redis和Sentinel

张亦
2023-03-14

我遇到了一个问题,我不知道如何解决这个问题。我的redis sentinel生态系统如下:

3个哨兵集群-->使用docker-compose管理1个主服务器和2个从服务器

当我将哨兵地址提供给客户机应用程序(在我的例子中,它是一个spring redis应用程序)时,我就得到了主redis的覆盖网络内部IP地址。客户端无法识别这一点,因此失败。如何获取可外部解析的IP地址?其次,这是否可能,因为docker swarm管理覆盖网络上的IP地址。使用docker Swarm是正确的方法吗?任何反馈都将不胜感激。

version: '3'

services:
  redis-master:
    image: redis:latest
    volumes:
      - "/docker-service-data/master:/data"
      - /redis-docker/redis.conf:/etc/redis.conf
    command: redis-server /etc/redis.conf
    ports:
      - 6379:6379
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.role == manager]
    networks:
       - rev_proxy
  redis-slave:
    image: redis:latest
    volumes:
      - "/docker-service-data/slave:/data"
      - /redis-docker/redis.conf:/etc/redis.conf
    command: redis-server /etc/redis.conf --slaveof redis-master 6379 
    deploy:
      mode: replicated
      replicas: 2
      placement:
        constraints: [node.role == worker]
    networks:
       - rev_proxy
  sentinel_1:
    image: <private-registry>/redis-sentinel:1
    deploy:
      mode: replicated
      replicas: 3
    ports:
      - 26379:26379
    depends_on:
      - redis-master
    networks:
      - rev_proxy
networks:
  rev_proxy:
     external:
       name: rev_proxy_net

redis.conf:

我对bind语句进行了注释,以便副本监听所有接口,保护模式为no,此时没有身份验证。

sentinel monitor master redis-master 6379 2
sentinel down-after-milliseconds master 1000
sentinel parallel-syncs master 1
sentinel failover-timeout master 1000

共有1个答案

夏新翰
2023-03-14

您可能需要version:'3.3'endpoint_mode:vip选项。请参阅此链接https://docs.docker.com/compose/compose-file/#endpoint_mode

 类似资料:
  • 问题内容: 我需要知道客户的IP地址,这是我的鳕鱼 处理程序: 结果: 为什么我无法获得真正的客户IP? 问题答案: 通常,您可以用来获取正在访问Web应用程序的客户端的IP地址。但是,如果用户位于代理服务器后面或通过负载均衡器访问您的Web服务器(例如,在云托管中),则上述代码段将获取代理服务器或负载均衡器服务器的IP地址,而不是原始IP地址客户。 因此,您应该获得请求的HTTP标头“ X-Fo

  • 本文向大家介绍从刷票了解获得客户端IP的方法,包括了从刷票了解获得客户端IP的方法的使用技巧和注意事项,需要的朋友参考一下 前两个星期帮一个朋友的亲戚的孩子刷票,谁让咱们是程序员呢。这当中也遇到过重装系统,除灰尘,淘宝购物,盗QQ,下电影,某一个软件为什么不能使用等等,要是说不会,他们就说你电脑技术不是挺牛逼的吗,这点问题都解决不了。 刷票,分为多种限制,注册用户,验证码,以及IP限制。这个刷票网

  • 我在weblogic中遇到了一个奇怪的问题,我们的web客户端突然无法调用webservice并连续数小时抛出以下异常。在webservice服务器端,未捕获任何异常,但在访问日志中仅找到http 500。重新启动托管webservice的weblogic托管服务器后,问题得到了解决。 web客户端和webservice服务器几个月来一直工作正常,但现在突然出现了问题。我相信这不是应用程序错误,因

  • SQLServerException:与主机本地主机端口1433的TCP/IP连接失败。错误:“连接被拒绝:连接。请验证连接属性。确保主机上运行SQL Server实例,并在端口接受TCP/IP连接。确保到端口的TCP连接没有被防火墙阻止。 请帮我解决这个问题。

  • 问题内容: 尝试获取网页: 获取https://www.fl.ru/:远程错误:握手失败。 如果我尝试获取另一个HTTPS页面-一切正常。 问题答案: 该服务器仅支持一些弱密码: 如果确实必须连接到该服务器,则Go会支持列表中的最后一个密码,但默认情况下不支持。使用新的tls.Config创建一个客户端,并指定所需的密码:

  • 尝试获取网页: 收到https://www.fl.ru/:远程错误:握手失败。 如果我尝试获取另一个HTTPS页面,一切都可以。