当前位置: 首页>>代码示例>>Java>>正文


Java ZNRecord.getId方法代码示例

本文整理汇总了Java中org.apache.helix.ZNRecord.getId方法的典型用法代码示例。如果您正苦于以下问题:Java ZNRecord.getId方法的具体用法?Java ZNRecord.getId怎么用?Java ZNRecord.getId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.helix.ZNRecord的用法示例。


在下文中一共展示了ZNRecord.getId方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: convertListToTypedList

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
public static <T extends Object> List<T> convertListToTypedList(List<ZNRecord> recordList,
    Class<T> clazz) {
  List<T> list = new ArrayList<T>();
  for (ZNRecord record : recordList) {
    if (record.getId() == null) {
      logger.error("Invalid record: Id missing in " + record);
      continue;
    }
    try {

      Constructor<T> constructor = clazz.getConstructor(new Class[] {
        ZNRecord.class
      });
      T instance = constructor.newInstance(record);
      list.add(instance);
    } catch (Exception e) {
      logger.error("Error creating an Object of type:" + clazz.getCanonicalName(), e);
    }
  }
  return list;
}
 
开发者ID:apache,项目名称:helix,代码行数:22,代码来源:ZNRecordUtil.java

示例2: convertListToTypedMap

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
public static <T extends Object> Map<String, T> convertListToTypedMap(List<ZNRecord> recordList,
    Class<T> clazz) {
  Map<String, T> map = new HashMap<String, T>();
  for (ZNRecord record : recordList) {
    if (record.getId() == null) {
      logger.error("Invalid record: Id missing in " + record);
      continue;
    }
    try {

      Constructor<T> constructor = clazz.getConstructor(new Class[] {
        ZNRecord.class
      });
      T instance = constructor.newInstance(record);
      map.put(record.getId(), instance);
    } catch (Exception e) {
      logger.error("Error creating an Object of type:" + clazz.getCanonicalName(), e);
    }
  }
  return map;
}
 
开发者ID:apache,项目名称:helix,代码行数:22,代码来源:ZNRecordUtil.java

示例3: deepCopyZNRecord

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
/**
 * Return a deep copy of a ZNRecord.
 *
 * @return
 */
public ZNRecord deepCopyZNRecord(ZNRecord record) {
  ZNRecord copy = new ZNRecord(record.getId());

  copy.getSimpleFields().putAll(record.getSimpleFields());
  for (String mapKey : record.getMapFields().keySet()) {
    Map<String, String> mapField = record.getMapFields().get(mapKey);
    copy.getMapFields().put(mapKey, new TreeMap<String, String>(mapField));
  }

  for (String listKey : record.getListFields().keySet()) {
    copy.getListFields().put(listKey, new ArrayList<String>(record.getListFields().get(listKey)));
  }
  if (record.getRawPayload() != null) {
    byte[] rawPayload = new byte[record.getRawPayload().length];
    System.arraycopy(record.getRawPayload(), 0, rawPayload, 0, record.getRawPayload().length);
    copy.setRawPayload(rawPayload);
  }

  copy.setVersion(record.getVersion());
  copy.setCreationTime(record.getCreationTime());
  copy.setModifiedTime(record.getModifiedTime());

  return copy;
}
 
开发者ID:apache,项目名称:helix,代码行数:30,代码来源:TestResourceMonitor.java

示例4: getControllerLeader

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
/**
 * Locate the controller leader so that we can send LLC segment completion requests to it.
 *
 * @return The host:port string of the current controller leader.
 */
public synchronized String getControllerLeader() {
  if (!_refresh) {
    return _controllerLeaderHostPort;
  }

  BaseDataAccessor<ZNRecord> dataAccessor = _helixManager.getHelixDataAccessor().getBaseDataAccessor();
  Stat stat = new Stat();
  try {
    ZNRecord znRecord = dataAccessor.get("/" + _clusterName + "/CONTROLLER/LEADER", stat, AccessOption.THROW_EXCEPTION_IFNOTEXIST);
    String leader = znRecord.getId();
    int index = leader.lastIndexOf('_');
    _controllerLeaderHostPort = leader.substring(0, index) + ":" + leader.substring(index + 1);
    _refresh = false;
    return _controllerLeaderHostPort;
  } catch (Exception e) {
    LOGGER.warn("Could not locate controller leader, exception", e);
    _controllerLeaderHostPort = null;
    _refresh = true;
    return null;
  }
}
 
开发者ID:linkedin,项目名称:pinot,代码行数:27,代码来源:ControllerLeaderLocator.java

示例5: addIdealState

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
@Override
public void addIdealState(String clusterName, String resourceName,
    String idealStateFile) throws IOException {
  ZNRecord idealStateRecord =
      (ZNRecord) (new ZNRecordSerializer().deserialize(readFile(idealStateFile)));
  if (idealStateRecord.getId() == null || !idealStateRecord.getId().equals(resourceName)) {
    throw new IllegalArgumentException("ideal state must have same id as resource name");
  }
  setResourceIdealState(clusterName, resourceName, new IdealState(idealStateRecord));
}
 
开发者ID:apache,项目名称:helix,代码行数:11,代码来源:ZKHelixAdmin.java

示例6: addStateModelDef

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
@Override
public void addStateModelDef(String clusterName, String stateModelDefName,
    String stateModelDefFile) throws IOException {
  ZNRecord record =
      (ZNRecord) (new ZNRecordSerializer().deserialize(readFile(stateModelDefFile)));
  if (record == null || record.getId() == null || !record.getId().equals(stateModelDefName)) {
    throw new IllegalArgumentException(
        "state model definition must have same id as state model def name");
  }
  addStateModelDef(clusterName, stateModelDefName, new StateModelDefinition(record), false);
}
 
开发者ID:apache,项目名称:helix,代码行数:12,代码来源:ZKHelixAdmin.java

示例7: createChildren

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
public static void createChildren(ZkClient client, String parentPath, ZNRecord nodeRecord) {
  client.createPersistent(parentPath, true);

  String id = nodeRecord.getId();
  String temp = parentPath + "/" + id;
  client.createPersistent(temp, nodeRecord);
}
 
开发者ID:apache,项目名称:helix,代码行数:8,代码来源:ZKUtil.java

示例8: createOrMerge

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
public static void createOrMerge(ZkClient client, String path, final ZNRecord record,
    final boolean persistent, final boolean mergeOnUpdate) {
  int retryCount = 0;
  while (retryCount < RETRYLIMIT) {
    try {
      if (client.exists(path)) {
        DataUpdater<ZNRecord> updater = new DataUpdater<ZNRecord>() {
          @Override
          public ZNRecord update(ZNRecord currentData) {
            if (currentData != null && mergeOnUpdate) {
              currentData.merge(record);
              return currentData;
            }
            return record;
          }
        };
        client.updateDataSerialized(path, updater);
      } else {
        CreateMode mode = (persistent) ? CreateMode.PERSISTENT : CreateMode.EPHEMERAL;
        if (record.getDeltaList().size() > 0) {
          ZNRecord value = new ZNRecord(record.getId());
          value.merge(record);
          client.create(path, value, mode);
        } else {
          client.create(path, record, mode);
        }
      }
      break;
    } catch (Exception e) {
      retryCount = retryCount + 1;
      logger.warn("Exception trying to update " + path + " Exception:" + e.getMessage()
          + ". Will retry.");
    }
  }
}
 
开发者ID:apache,项目名称:helix,代码行数:36,代码来源:ZKUtil.java

示例9: asyncCreateOrMerge

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
public static void asyncCreateOrMerge(ZkClient client, String path, final ZNRecord record,
    final boolean persistent, final boolean mergeOnUpdate) {
  try {
    if (client.exists(path)) {
      if (mergeOnUpdate) {
        ZNRecord curRecord = client.readData(path);
        if (curRecord != null) {
          curRecord.merge(record);
          client.asyncSetData(path, curRecord, -1, null);
        } else {
          client.asyncSetData(path, record, -1, null);
        }
      } else {
        client.asyncSetData(path, record, -1, null);
      }
    } else {
      CreateMode mode = (persistent) ? CreateMode.PERSISTENT : CreateMode.EPHEMERAL;
      if (record.getDeltaList().size() > 0) {
        ZNRecord newRecord = new ZNRecord(record.getId());
        newRecord.merge(record);
        client.create(path, null, mode);

        client.asyncSetData(path, newRecord, -1, null);
      } else {
        client.create(path, null, mode);

        client.asyncSetData(path, record, -1, null);
      }
    }
  } catch (Exception e) {
    logger.error("Exception in async create or update " + path + ". Exception: " + e.getMessage()
        + ". Give up.");
  }
}
 
开发者ID:apache,项目名称:helix,代码行数:35,代码来源:ZKUtil.java

示例10: StateTransitionTimeoutConfig

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
public StateTransitionTimeoutConfig(ZNRecord record) {
  _resource = record.getId();
  if (record.getMapFields().containsKey(StateTransitionTimeoutProperty.TIMEOUT.name())) {
    _timeoutMap = record.getMapField(StateTransitionTimeoutProperty.TIMEOUT.name());
  } else {
    _timeoutMap = new HashMap<String, String>();
  }
}
 
开发者ID:apache,项目名称:helix,代码行数:9,代码来源:StateTransitionTimeoutConfig.java

示例11: addIdealState

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
public void addIdealState(String clusterName, String resourceName, String idealStateFile)
    throws IOException {
  ZNRecord idealStateRecord =
      (ZNRecord) (new ZNRecordSerializer().deserialize(readFile(idealStateFile)));
  if (idealStateRecord.getId() == null || !idealStateRecord.getId().equals(resourceName)) {
    throw new IllegalArgumentException("ideal state must have same id as resource name");
  }
  _admin.setResourceIdealState(clusterName, resourceName, new IdealState(idealStateRecord));
}
 
开发者ID:apache,项目名称:helix,代码行数:10,代码来源:ClusterSetup.java

示例12: find

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
public static ZNRecord find(String id, List<ZNRecord> list) {
  for (ZNRecord record : list) {
    if (record.getId() != null && record.getId().equals(id)) {
      return record;
    }
  }
  return null;
}
 
开发者ID:apache,项目名称:helix,代码行数:9,代码来源:ZNRecordUtil.java

示例13: convertListToMap

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
public static Map<String, ZNRecord> convertListToMap(List<ZNRecord> recordList) {
  Map<String, ZNRecord> recordMap = new HashMap<String, ZNRecord>();
  for (ZNRecord record : recordList) {
    if (record.getId() != null) {
      recordMap.put(record.getId(), record);
    }
  }
  return recordMap;
}
 
开发者ID:apache,项目名称:helix,代码行数:10,代码来源:ZNRecordUtil.java

示例14: InstanceZKMetadata

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
public InstanceZKMetadata(ZNRecord record) {
  _id = record.getId();
  setInstanceConfigFromId(_id);
  _groupIdMap.putAll(record.getMapField(KAFKA_HIGH_LEVEL_CONSUMER_GROUP_MAP));
  _partitionMap.putAll(record.getMapField(KAFKA_HIGH_LEVEL_CONSUMER_PARTITION_MAP));
}
 
开发者ID:Hanmourang,项目名称:Pinot,代码行数:7,代码来源:InstanceZKMetadata.java

示例15: serialize

import org.apache.helix.ZNRecord; //导入方法依赖的package包/类
@Override
public byte[] serialize(Object data) {
  if (!(data instanceof ZNRecord)) {
    // null is NOT an instance of any class
    logger.error("Input object must be of type ZNRecord but it is " + data
        + ". Will not write to zk");
    throw new HelixException("Input object is not of type ZNRecord (was " + data + ")");
  }

  ZNRecord record = (ZNRecord) data;

  // apply retention policy
  int max = getListFieldBound(record);
  if (max < Integer.MAX_VALUE) {
    Map<String, List<String>> listMap = record.getListFields();
    for (String key : listMap.keySet()) {
      List<String> list = listMap.get(key);
      if (list.size() > max) {
        listMap.put(key, list.subList(0, max));
      }
    }
  }

  // do serialization
  ObjectMapper mapper = new ObjectMapper();
  SerializationConfig serializationConfig = mapper.getSerializationConfig();
  serializationConfig.set(SerializationConfig.Feature.INDENT_OUTPUT, true);
  serializationConfig.set(SerializationConfig.Feature.AUTO_DETECT_FIELDS, true);
  serializationConfig.set(SerializationConfig.Feature.CAN_OVERRIDE_ACCESS_MODIFIERS, true);
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  byte[] serializedBytes = null;
  try {
    mapper.writeValue(baos, data);
    serializedBytes = baos.toByteArray();
    // apply compression if needed
    if (record.getBooleanField("enableCompression", false) || serializedBytes.length > ZNRecord.SIZE_LIMIT) {
      serializedBytes = GZipCompressionUtil.compress(serializedBytes);
    }
  } catch (Exception e) {
    logger.error("Exception during data serialization. Will not write to zk. Data (first 1k): "
        + new String(baos.toByteArray()).substring(0, 1024), e);
    throw new HelixException(e);
  }
  if (serializedBytes.length > ZNRecord.SIZE_LIMIT) {
    logger.error("Data size larger than 1M, ZNRecord.id: " + record.getId()
        + ". Will not write to zk. Data (first 1k): "
        + new String(serializedBytes).substring(0, 1024));
    throw new HelixException("Data size larger than 1M, ZNRecord.id: " + record.getId());
  }
  return serializedBytes;
}
 
开发者ID:apache,项目名称:helix,代码行数:52,代码来源:ZNRecordSerializer.java


注:本文中的org.apache.helix.ZNRecord.getId方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。