1 - 命名空间
命名空间
命名空间提供了一种在相同注册中心下资源的逻辑隔离的机制,同一命名空间下的资源命名必须唯一,但是跨命名空间允许存在同名的资源。
命名空间常用于多个不同环境的资源的隔离,比如开发测试环境和生产环境之间的资源隔离。
PolarisMesh默认存在2个命名空间:
- Polaris:Polaris是系统命名空间,存放的是PolarisMesh的系统服务,PolarisMesh自身的集群发现及管理需要依赖Polaris命名空间下的服务。
- default:默认命名空间,用户如果没有多命名空间的需求,可以直接使用default命名空间。
2 - 服务
服务
服务是一种资源对外暴露的抽象方式,资源本身通过端口监听的方式提供网络访问,并通过提供一系列预定义的服务接口,给主调端进行调用。
服务通过服务名进行标识,每个服务都属于某一个命名空间,同一命名空间下的服务名需唯一。
服务别名
服务别名是针对某个服务的别名,一个服务可以有多个服务别名,通过服务别名可访问到所指向的服务下所有的所有实例和分组。
服务实例
服务实例对应的是暴露一个或多个API接口供主调应用进行网络调用的节点,通过IP:PORT的方式进行唯一标识。
- 在虚拟机上,一个服务实例对应的是一个进行端口监听的进程。
- 在容器环境中,一个服务实例对应的是一个POD。
服务实例分组
实例分组是由一个或多个具有相同标签属性的实例组成,这些实例往往具备相同的特征,比如属于同一版本、属于同一个地域、属于同一环境。
对实例进行分组,可以方便后续按照分组进行服务治理,比如灰度发布时,按不同版本进行进行流量调度、在查看监控时,可以看到灰度分组的流量情况,方便验证版本灰度是否完成。
实例分组属于服务,具备一个或多个标签过滤条件组成,符合过滤条件的实例属于该分组。
属性名 | 类型 | 说明 |
---|---|---|
name | string | 分组名 |
service | string | 分组所属的服务名 |
namespace | string | 分组所属的命名空间 |
labels | map<string, MatchString> | 标签匹配条件,支持多种匹配模式(全匹配、部分匹配、正则匹配等) |
3 - 配置
配置分组
配置分组是配置文件集的所属分组,是配置组织的维度之一,每个配置文件都属于某个一个命名空间以及配置分组,相同命名空间和配置分组下的配置文件具有唯一的名称。
推荐使用一个有意义的字符串来分组配置集,用于标识该分组下的配置集合,比如和微服务名称对应–UserConfig,代表用户服务下的配置集合。
配置文件
配置文件指的是业务具体的配置,配置文件名可采用树形结构的层级进行标识,采用/符号来区分层次,比如cluster1/dev/config。
不同层级可用于体现服务的配置在不同环境、集群、set的差异。例如:第一级按环境分为DEV(开发)、TEST(测试环境)、PROD(生产环境),PROD下第二级按城市分为SH、SZ。