LabelManager 架构

简述

架构说明

  • LabelEntities: 指代标签实体集合,有且包含集群标签,配置标签,引擎标签,节点标签,路由标签,搜索标签等。
  • NodeLabelService: 实例/节点与标签的关联服务接口类,定义对两者关联关系的增删改查以及根据标签匹配实例/节点的接口方法。
  • UserLabelService: 声明用户与标签的关联操作。
  • ResourceLabelService: 声明集群资源与标签的关联操作,涉及到对组合标签的资源管理,清理或设置标签关联的资源数值。
  • NodeLabelScorer: 节点标签评分器,对应不同的标签匹配算法的实现,使用评分表示节点的标签匹配度。
  1. 根据标签类的定义信息,递归解析泛型结构,得到具体的标签值类型。
  2. 转化输入值对象到标签值类型,运用隐式转化或正反解析框架。
  3. 根据1-3的返回,实例化标签,并根据不同的标签类进行一些后置操作。
  1. 方法的输入应该为两组网络关系列表,分别是 和 , 其中关系里的Node节点必须具有请求里涉及到所有CORE以及SUITABLE特征的标签,这些节点也称为备选节点。
  2. 第一步遍历计算关系列表,遍历每个节点关联的标签Label,这一步先给标签打分,如果标签不是请求中附带的标签,打分为0, 否则打分为: (基本分/该标签对应特征值在请求中的出现次数) * 对应特征值的激励值,其中基本分默认为1,节点的初始分为相关联的标签打分的总和;其中因为CORE/SUITABLE类型标签为必须唯一标签,出现次数恒定为1。
  3. 对得到的备选节点的分数做标准差归一化,并排序。