apolloconfig / apolloconfig/apollo

同一 app 里的多个 namespace 在多集群模式下的维护问题:并不是所有 namespace 都需要多集群。

Offen
#1,812 1 Kommentar 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
29.8k
Forks
10.2k
Ø Merge
4 T. 7 Std.
Gemergte PRs (30 T.)
4

Beschreibung

假设场景:
1. app 有两个 ns:x 和 y
2. app 建立两个集群:D(default) 和 C

可能会有以下几种情况:
1. 全不同:集群 C 中,ns x 和 ns y 的配置都需要与集群 D 中不同
2. 全相同:集群 C 中,ns x 和 ns y 的配置都需要与集群 D 中相同(实际上此时不需要创建 C)
3. 部分相同:集群 C 中,ns x 的配置需要与集群 D 中不同;ns y 的配置与集群 D 中相同

针对部分相同的情况,对使用方可能会产生理解上的困难:
1. 集群 C 中 ns y 未发布过,那么该 ns 会提示:`Tips: 此namespace从来没有发布过,Apollo客户端将获取不到配置并记录404日志信息,请及时发布。`,但实际上 client 会获取到集群 D 的 ns y 的配置。
2. 集群 C 中 ns y 被发布了,但是配置是空的。那么 client 会获取到一个空配置的 ns y。

在 #1763 中提到了同样的问题,但是仅仅给出了解决方案:删除误发布的 namespace。

这里应该做一下优化,可能方向有两个:
1. 集群概念位于 app 层,那么该 app 下所有的 namespace 都要遵循对应集群的设置,即使某 namespace 未发布过配置,也不会去寻找 default。强制所有 namespace 在集群间同步。
2. 集群概念下降到 namespace 层,那么 app 下创建的集群可以拥有单个 namespace,或者多个 namespace。不需要的 namespace 不出现在该集群下。操作上可以使用:创建集群 -> 选择要创建的 namespace -> 复制默认集群配置?这样的流程。或者创建集群 -> 在集群下创建同名 namespace。

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.