本文整理汇总了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;
}
示例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;
}
示例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;
}
示例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;
}
}
示例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));
}
示例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);
}
示例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);
}
示例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.");
}
}
}
示例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.");
}
}
示例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>();
}
}
示例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));
}
示例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;
}
示例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;
}
示例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));
}
示例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;
}