6.3.2及更高版本中的KeyDB容器问题

问题描述 投票:0回答:1

我有一个 Java 应用程序,它使用冗余 KeyDB,通过 HAProxy 进行负载平衡,我在其中存储带有信息的元素,以促进应用程序的业务逻辑。几个月前,我拉取了 KeyDB 的 Docker 容器,之前的版本是 6.0.18,现在已更新到版本 6.3.2。然而,在此更新后不久,即启动容器大约一周后,我开始遇到 KeyDB 的访问问题。我在流程中不断遇到以下错误消息:

enter image description here

在容器日志中,出现错误时,主节点无法与辅助节点建立通信,并且连接计时器超时:

enter image description here

从 HAProxy 统计页面可以观察到,节点启动了几秒钟(大约连续 30 秒),然后在恢复启动之前被标记为不可运行大约 1 分钟,然后两个节点都间歇性地再次关闭.

这是集装箱的信息:

version: '3'
services:

  haproxy:
    image: haproxy:latest
    ports:
      - "6379:6379"
      - "9000:9000"
    volumes:
      - ./haproxy:/usr/local/etc/haproxy
    depends_on:
      - keydb-1
      - keydb-2
    restart: unless-stopped

  keydb-1:
    image: eqalpha/keydb

    command: keydb-server --port 6371 --requirepass rits --masterauth rits --notify-keyspace-events KEA --server-threads 8 --active-replica yes --replicaof keydb-2 6372
    ports:
      - "6371:6371"
    restart: unless-stopped

  keydb-2:
    image: eqalpha/keydb

    command: keydb-server --port 6372 --requirepass rits --masterauth rits --notify-keyspace-events KEA --server-threads 8 --active-replica yes --replicaof keydb-1 6371
    ports:
      - "6372:6372"
    restart: unless-stopped

我等待后续版本是否会通过测试 6.3.3 和 6.3.4 来改变这种情况,但问题仍然存在。我目前使用的是 6.0.18 版本,我最初使用的是该版本,目前没有遇到任何问题。但是,就我的应用程序的未来支持而言,我不想继续停留在 KeyDB 的特定版本上。

docker docker-compose keydb
1个回答
0
投票

从文档看来,您似乎需要在 keydb-server 命令中添加“--multi-master yes”

https://docs.keydb.dev/docs/multi-master/

问候

© www.soinside.com 2019 - 2024. All rights reserved.