slime-io / slime

An intelligent ServiceMesh manager based on Istio
https://slime-io.github.io/
Other
425 stars 78 forks source link

meshreg: support for nacos multiple namespaces and multiple groups #513

Closed believening closed 3 months ago

believening commented 3 months ago

nacos 注册中心自带了 namespace 和 group 等隔离概念,这些特性已经被用户在实际生产中使用,我们在 https://github.com/slime-io/slime/pull/293 中支持获取全部 namespace 内全部 group 的服务及其实例的能力,对于需要更细粒度获取多 namespace 多 group 来说就不合适了。

为此 pr 提供了新的配置 api NacosServer.NamespaceGroups 用于配置从指定多个 namespace 及其 group 中获取实例,api详情见代码及其注释。示例如下:

Nacos:
  NamespaceGroups:
  - ns1:g1
  - ns2:g1,g2
  - public

至此对于 nacos 注册中心提供了三种方式配置服务源(优先级从高到低):

需要注意的是,不同 namespace 不同 group 下的同名服务会被聚合到一起,这个行为和 #293 保持一致。


此外,在配置指定 namespace 时,我们支持了从 nacos namespace shownamenamespaceId 的自动映射,对于使用 nacos 自动生成 namespaceId 的场景更加友好。