Skip to content

顺序启动节点导致 rmqtt-cluster-raft peers 列表缺失首个节点,需重启后才补全 #331

@Y98S

Description

@Y98S

在 rmqtt 集群(启用 rmqtt-cluster-raft 插件)启动时如果不使用docker compose up -d同时启动,而是按顺序 docker compose up -d rmqtt1 → rmqtt2 → rmqtt3 启动,会导致 peers 列表缺失首个已启动节点,需重启该节点才能补全。

期望行为:

后续节点上线后,节点列表包含当前全部已上线节点,最终显示全部集群成员(无需重启)。

实际行为:

在2,3节点上线后 /api/v1/plugins/1/rmqtt-cluster-raft 中 peers 只显示 2,3 不含 1。

重现步骤:

使用readme中的docker compose template 将command进行如下修改

xxx
command: ["--id","1","--plugins-default-startups","rmqtt-cluster-raft","--node-grpc-addrs","1@rmqtt1:5363","2@rmqtt2:5363","3@rmqtt3:5363","--raft-peer-addrs","1@rmqtt1:6003","2@rmqtt2:6003","3@rmqtt3:6003"]
xxx
command: ["--id","2","--plugins-default-startups","rmqtt-cluster-raft","--node-grpc-addrs","1@rmqtt1:5363","2@rmqtt2:5363","3@rmqtt3:5363","--raft-peer-addrs","1@rmqtt1:6003","2@rmqtt2:6003","3@rmqtt3:6003"]
xxx
command: ["--id","3","--plugins-default-startups","rmqtt-cluster-raft","--node-grpc-addrs","1@rmqtt1:5363","2@rmqtt2:5363","3@rmqtt3:5363","--raft-peer-addrs","1@rmqtt1:6003","2@rmqtt2:6003","3@rmqtt3:6003"]
xxx
# 顺序启动
docker compose up -d rmqtt1
docker compose up -d rmqtt2
docker compose up -d rmqtt3

# 查询当前信息
curl "http://127.0.0.1:6064/api/v1/plugins/1/rmqtt-cluster-raft"

此时可见如下回显

Image

重启rmqtt1对应的docker后peers列表变为3个节点 docker restart rmqtt1

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions