首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis复制-解析主机名失败

Redis复制-解析主机名失败
EN

Stack Overflow用户
提问于 2022-04-29 13:10:49
回答 1查看 930关注 0票数 0

我正在尝试建立一个带有3个redis服务器(1个主服务器和2个副本)和3个redis哨兵的redis复制集群。一个服务器和数据库对将存在于一台机器上,并且有3台机器,每台机器都安装了对接器。我遇到的问题是,redis服务器实例无法连接到主服务器并解决主名称。网络或端口打开似乎没有任何问题,因为我能够在下面的配置中指定每台机器IPv4,并且通信按预期工作。

更低的日志中提供的Redis版本

代码语言:javascript
复制
docker-compose version 1.29.2, build 5becea4c
Docker version 20.10.14, build a224086
Ubuntu 20.04.4 LTS

下面是docker-compose.yml文件:

我没有包含redis_3配置和输出,因为它几乎与redis_2相同。

小学:

代码语言:javascript
复制
version: '3.8'

services:
  redis_1:
    image: bitnami/redis:6.2
    restart: always
    command: ["redis-server", "--protected-mode", "no", "--dir", "/data"]
    environment:
      - REDIS_REPLICA_IP=redis_1
      - REDIS_REPLICATION_MODE=master
      - REDIS_MASTER_PASSWORD=very-good-password
      - REDIS_PASSWORD=very-good-password
    ports:
     - "6379:6379"
    volumes:
      - "/opt/knowit/docker/data:/data"
  sentinel_1:
    image: bitnami/redis-sentinel:6.2
    restart: always
    environment:
      - REDIS_MASTER_HOST=redis_1
      - REDIS_MASTER_PASSWORD=very-good-password
      - REDIS_SENTINEL_ANNOUNCE_IP=redis_1
      - REDIS_SENTINEL_QUORUM=2
      - REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS=5000
      - REDIS_SENTINEL_FAILOVER_TIMEOUT=60000
      - REDIS_SENTINEL_PASSWORD=other-good-password
      - REDIS_SENTINEL_ANNOUNCE_HOSTNAMES=yes
      - REDIS_SENTINEL_RESOLVE_HOSTNAMES=yes
    ports:
      - "26379:26379"

复制品:

代码语言:javascript
复制
version: '3.8'

services:
  redis_2:
    image: bitnami/redis:6.2
    restart: always
    command: ["redis-server", "--protected-mode", "no", "--replicaof", "redis_1", "6379", "--dir", "/data"]
    environment:
      - REDIS_REPLICA_IP=redis_2
      - REDIS_REPLICATION_MODE=replica
      - REDIS_MASTER_PASSWORD=very-good-password
      - REDIS_PASSWORD=very-good-password
    ports:
      - "6379:6379"
    volumes:
      - "/opt/knowit/docker/data:/data"
  sentinel_2:
    image: bitnami/redis-sentinel:6.2
    restart: always
    environment:
      - REDIS_MASTER_HOST=redis_1
      - REDIS_MASTER_PASSWORD=very-good-password
      - REDIS_SENTINEL_ANNOUNCE_IP=redis_2
      - REDIS_SENTINEL_QUORUM=2
      - REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS=5000
      - REDIS_SENTINEL_FAILOVER_TIMEOUT=60000
      - REDIS_SENTINEL_PASSWORD=other-good-password
      - REDIS_SENTINEL_ANNOUNCE_HOSTNAMES=yes
      - REDIS_SENTINEL_RESOLVE_HOSTNAMES=yes
    ports:
      - "26379:26379"

码头日志如下所示:

小学:

代码语言:javascript
复制
$ sudo docker-compose up
Starting docker_redis_1    ... done
Starting docker_sentinel_1 ... done
Attaching to docker_redis_1, docker_sentinel_1
redis_1     | redis 12:15:41.03 
redis_1     | redis 12:15:41.04 Welcome to the Bitnami redis container
redis_1     | redis 12:15:41.04 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-redis
redis_1     | redis 12:15:41.04 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-redis/issues
redis_1     | 
redis_1     | redis 12:15:41.04 
redis_1     | 1:C 29 Apr 2022 12:15:41.068 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis_1     | 1:C 29 Apr 2022 12:15:41.069 # Redis version=6.2.7, bits=64, commit=00000000, modified=0, pid=1, just started
redis_1     | 1:C 29 Apr 2022 12:15:41.069 # Configuration loaded
redis_1     | 1:M 29 Apr 2022 12:15:41.070 * monotonic clock: POSIX clock_gettime
redis_1     | 1:M 29 Apr 2022 12:15:41.072 # A key '__redis__compare_helper' was added to Lua globals which is not on the globals allow list nor listed on the deny list.
redis_1     | 1:M 29 Apr 2022 12:15:41.072 * Running mode=standalone, port=6379.
redis_1     | 1:M 29 Apr 2022 12:15:41.072 # Server initialized
redis_1     | 1:M 29 Apr 2022 12:15:41.073 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
redis_1     | 1:M 29 Apr 2022 12:15:41.073 * Ready to accept connections
sentinel_1  | redis-sentinel 12:15:41.08 
sentinel_1  | redis-sentinel 12:15:41.08 Welcome to the Bitnami redis-sentinel container
sentinel_1  | redis-sentinel 12:15:41.08 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-redis-sentinel
sentinel_1  | redis-sentinel 12:15:41.08 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-redis-sentinel/issues
sentinel_1  | redis-sentinel 12:15:41.08 
sentinel_1  | redis-sentinel 12:15:41.08 INFO  ==> ** Starting Redis sentinel setup **
sentinel_1  | redis-sentinel 12:15:41.11 INFO  ==> Initializing Redis Sentinel...
sentinel_1  | redis-sentinel 12:15:41.11 INFO  ==> Persisted files detected, restoring...
sentinel_1  | redis-sentinel 12:15:41.12 INFO  ==> ** Redis sentinel setup finished! **
sentinel_1  | 
sentinel_1  | redis-sentinel 12:15:41.13 INFO  ==> ** Starting Redis Sentinel **
sentinel_1  | 1:X 29 Apr 2022 12:15:41.143 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
sentinel_1  | 1:X 29 Apr 2022 12:15:41.144 # Redis version=6.2.7, bits=64, commit=00000000, modified=0, pid=1, just started
sentinel_1  | 1:X 29 Apr 2022 12:15:41.144 # Configuration loaded
sentinel_1  | 1:X 29 Apr 2022 12:15:41.145 * monotonic clock: POSIX clock_gettime
sentinel_1  | 1:X 29 Apr 2022 12:15:41.146 # A key '__redis__compare_helper' was added to Lua globals which is not on the globals allow list nor listed on the deny list.
sentinel_1  | 1:X 29 Apr 2022 12:15:41.147 * Running mode=sentinel, port=26379.
sentinel_1  | 1:X 29 Apr 2022 12:15:41.148 # Sentinel ID is 232f6b838b76c348f123597f2852091a77bdae03
sentinel_1  | 1:X 29 Apr 2022 12:15:41.148 # +monitor master mymaster redis_1 6379 quorum 2

复制品:

代码语言:javascript
复制
$ sudo docker-compose up
Starting docker_redis_2    ... done
Starting docker_sentinel_2 ... done
Attaching to docker_redis_2, docker_sentinel_2
redis_2     | redis 11:53:24.61 
redis_2     | redis 11:53:24.62 Welcome to the Bitnami redis container
redis_2     | redis 11:53:24.63 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-redis
redis_2     | redis 11:53:24.63 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-redis/issues
redis_2     | redis 11:53:24.63 
redis_2     | 
redis_2     | 1:C 29 Apr 2022 11:53:24.649 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis_2     | 1:C 29 Apr 2022 11:53:24.651 # Redis version=6.2.7, bits=64, commit=00000000, modified=0, pid=1, just started
redis_2     | 1:C 29 Apr 2022 11:53:24.651 # Configuration loaded
redis_2     | 1:S 29 Apr 2022 11:53:24.653 * monotonic clock: POSIX clock_gettime
redis_2     | 1:S 29 Apr 2022 11:53:24.656 # A key '__redis__compare_helper' was added to Lua globals which is not on the globals allow list nor listed on the deny list.
redis_2     | 1:S 29 Apr 2022 11:53:24.657 * Running mode=standalone, port=6379.
redis_2     | 1:S 29 Apr 2022 11:53:24.657 # Server initialized
redis_2     | 1:S 29 Apr 2022 11:53:24.657 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
redis_2     | 1:S 29 Apr 2022 11:53:24.659 * Ready to accept connections
redis_2     | 1:S 29 Apr 2022 11:53:24.659 * Connecting to MASTER redis_1:6379
sentinel_2  | redis-sentinel 11:53:24.70 
sentinel_2  | redis-sentinel 11:53:24.71 Welcome to the Bitnami redis-sentinel container
sentinel_2  | redis-sentinel 11:53:24.71 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-redis-sentinel
sentinel_2  | redis-sentinel 11:53:24.71 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-redis-sentinel/issues
sentinel_2  | redis-sentinel 11:53:24.71 
sentinel_2  | redis-sentinel 11:53:24.71 INFO  ==> ** Starting Redis sentinel setup **
redis_2     | 1:S 29 Apr 2022 11:53:34.673 # Unable to connect to MASTER: Resource temporarily unavailable
sentinel_2  | redis-sentinel 11:53:34.75 WARN  ==> Hostname redis_1 could not be resolved, this could lead to connection issues
sentinel_2  | redis-sentinel 11:53:34.76 INFO  ==> Initializing Redis Sentinel...
sentinel_2  | redis-sentinel 11:53:34.76 INFO  ==> Persisted files detected, restoring...
sentinel_2  | redis-sentinel 11:53:34.77 INFO  ==> ** Redis sentinel setup finished! **
sentinel_2  | 
sentinel_2  | redis-sentinel 11:53:34.79 INFO  ==> ** Starting Redis Sentinel **
redis_2     | 1:S 29 Apr 2022 11:53:35.675 * Connecting to MASTER redis_1:6379
sentinel_2  | 1:X 29 Apr 2022 11:53:44.813 # Failed to resolve hostname 'redis_1'
sentinel_2  | 1:X 29 Apr 2022 11:53:44.813 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
sentinel_2  | 1:X 29 Apr 2022 11:53:44.813 # Redis version=6.2.7, bits=64, commit=00000000, modified=0, pid=1, just started
sentinel_2  | 1:X 29 Apr 2022 11:53:44.813 # Configuration loaded
sentinel_2  | 1:X 29 Apr 2022 11:53:44.814 * monotonic clock: POSIX clock_gettime
sentinel_2  | 1:X 29 Apr 2022 11:53:44.815 # A key '__redis__compare_helper' was added to Lua globals which is not on the globals allow list nor listed on the deny list.
sentinel_2  | 1:X 29 Apr 2022 11:53:44.815 * Running mode=sentinel, port=26379.
sentinel_2  | 1:X 29 Apr 2022 11:53:44.816 # Sentinel ID is bfec501e81d8da33def75f23911b606aa395078d
sentinel_2  | 1:X 29 Apr 2022 11:53:44.816 # +monitor master mymaster redis_1 6379 quorum 2
sentinel_2  | 1:X 29 Apr 2022 11:53:44.817 # +tilt #tilt mode entered
redis_2     | 1:S 29 Apr 2022 11:53:45.687 # Unable to connect to MASTER: Resource temporarily unavailable
redis_2     | 1:S 29 Apr 2022 11:53:46.689 * Connecting to MASTER redis_1:6379
sentinel_2  | 1:X 29 Apr 2022 11:53:54.831 # Failed to resolve hostname 'redis_1'
sentinel_2  | 1:X 29 Apr 2022 11:53:54.914 # +tilt #tilt mode entered
redis_2     | 1:S 29 Apr 2022 11:53:56.701 # Unable to connect to MASTER: Resource temporarily unavailable

当不同的redis实例位于不同的机器上时,解析主机名有什么问题吗?或者我刚刚错过了一些基本的内容?

我假设是后者,因为我已经能够通过指定ip地址和副本接收主服务器的主机名来启动并运行它。

任何帮助都将不胜感激!如果需要更多的信息,请告诉我

EN

回答 1

Stack Overflow用户

发布于 2022-06-15 21:30:03

只有版本高于6.2的哨兵才能解析主机名,但默认情况下不启用。将sentinel resolve-hostnames yes添加到sentinel.conf将有帮助。

如果哨兵的版本较早,则主机名redis_node应替换为和ip。

有关更多细节,请参阅Redis文档中的查看IP地址和DNS名称。

参考- 松乐答复

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72058513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档