use of com.alibaba.nacos.naming.consistency.ephemeral.distro.DistroHttpData in project nacos by alibaba.
the class DistroController method onSyncDatum.
/**
* Synchronize datum.
*
* @param dataMap data map
* @return 'ok' if success
* @throws Exception if failed
*/
@PutMapping("/datum")
public ResponseEntity onSyncDatum(@RequestBody Map<String, Datum<Instances>> dataMap) throws Exception {
if (dataMap.isEmpty()) {
Loggers.DISTRO.error("[onSync] receive empty entity!");
throw new NacosException(NacosException.INVALID_PARAM, "receive empty entity!");
}
for (Map.Entry<String, Datum<Instances>> entry : dataMap.entrySet()) {
if (KeyBuilder.matchEphemeralInstanceListKey(entry.getKey())) {
String namespaceId = KeyBuilder.getNamespace(entry.getKey());
String serviceName = KeyBuilder.getServiceName(entry.getKey());
if (!serviceManager.containService(namespaceId, serviceName) && switchDomain.isDefaultInstanceEphemeral()) {
serviceManager.createEmptyService(namespaceId, serviceName, true);
}
DistroHttpData distroHttpData = new DistroHttpData(createDistroKey(entry.getKey()), entry.getValue());
distroProtocol.onReceive(distroHttpData);
}
}
return ResponseEntity.ok("ok");
}
use of com.alibaba.nacos.naming.consistency.ephemeral.distro.DistroHttpData in project nacos by alibaba.
the class DistroController method syncChecksum.
/**
* Checksum.
*
* @param source source server
* @param dataMap checksum map
* @return 'ok'
*/
@PutMapping("/checksum")
public ResponseEntity syncChecksum(@RequestParam String source, @RequestBody Map<String, String> dataMap) {
DistroHttpData distroHttpData = new DistroHttpData(createDistroKey(source), dataMap);
distroProtocol.onVerify(distroHttpData, source);
return ResponseEntity.ok("ok");
}
Aggregations