Class ServiceInstance

java.lang.Object
top.wcpe.beacon.agent.api.ServiceInstance

public final class ServiceInstance extends Object
服务发现返回的单个在线实例(只读值对象)。

字段与控制面 discovery 返回对齐:无 canary。

  • Constructor Details

    • ServiceInstance

      public ServiceInstance(String serverId, String role, String group, String zone, String address, String version, String status, int playerCount, int capacity, int weight)
    • ServiceInstance

      public ServiceInstance(String serverId, String role, String group, String zone, String address, String version, String status, int playerCount, int capacity, int weight, boolean zoneDefaultEntry)
    • ServiceInstance

      public ServiceInstance(String serverId, String role, String group, String zone, String address, String version, String status, int playerCount, int capacity, int weight, boolean zoneDefaultEntry, boolean lobbyClusterMember)
    • ServiceInstance

      public ServiceInstance(String serverId, String role, String group, String zone, String address, String version, String status, int playerCount, int capacity, int weight, boolean zoneDefaultEntry, boolean lobbyClusterMember, Map<String,String> metadata)
      带节点标签(metadata)的构造器。

      旧构造器一律委托到这里并传 null,因此 metadata 恒非 null(缺省空 map), 调用方无需做空判断。

      Parameters:
      metadata - 节点声明的键值标签;null 归空 map,非 null 时做防御性拷贝并冻结为不可变
  • Method Details

    • serverId

      public String serverId()
    • role

      public String role()
    • group

      public String group()
    • zone

      public String zone()
    • address

      public String address()
    • version

      public String version()
    • status

      public String status()
      健康状态:online / lost / offline。
    • playerCount

      public int playerCount()
      在线人数(仅展示,不参与任何决策)。
    • capacity

      public int capacity()
    • weight

      public int weight()
    • zoneDefaultEntry

      public boolean zoneDefaultEntry()
      该子服是否被指定为其小区(zone)的默认入口(FR-48)。

      仅 role=bukkit 子服可能为 true;BC 代理 agent 据此把它设为 BungeeCord 默认/fallback 服。 旧控制面不返回该字段时解析为 false(向后兼容)。

    • lobbyClusterMember

      public boolean lobbyClusterMember()
      该子服是否属于 namespace 全局 LobbyCluster。

      这是控制面发现快照的权威归属事实,与“当前可调度大厅候选”不同;后者受健康、容量和排水状态影响。 旧控制面不返回该字段时解析为 false(向后兼容)。

    • metadata

      public Map<String,String> metadata()
      节点声明的键值标签(只读事实)。

      语义边界(务必按此理解,不要自行扩展):这是节点自己声明的只读事实, 控制面只存不判(不做任何语义校验与路由决策);本对象不解释任何 key 的语义, 例如不认 region / tier 之类的具体业务含义,只做键值透传。

      返回的 Map 不可变(构造时已防御性拷贝并冻结):既不可增删改, 也不会随控制面后续数据变化。旧控制面响应不带 metadata 字段时解析为空 map (向后兼容,调用方无需判空)。

      规模上限对齐 FR-227:单个 key 长度 ≤ 32、单个 value 长度 ≤ 128、 单节点标签数 ≤ 20。

      Returns:
      不可变的标签键值对;无标签时为空 map