Search in sources :

Example 1 with DistroHttpData

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");
}
Also used : Datum(com.alibaba.nacos.naming.consistency.Datum) Map(java.util.Map) NacosException(com.alibaba.nacos.api.exception.NacosException) DistroHttpData(com.alibaba.nacos.naming.consistency.ephemeral.distro.DistroHttpData) PutMapping(org.springframework.web.bind.annotation.PutMapping)

Example 2 with DistroHttpData

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");
}
Also used : DistroHttpData(com.alibaba.nacos.naming.consistency.ephemeral.distro.DistroHttpData) PutMapping(org.springframework.web.bind.annotation.PutMapping)

Aggregations

DistroHttpData (com.alibaba.nacos.naming.consistency.ephemeral.distro.DistroHttpData)2 PutMapping (org.springframework.web.bind.annotation.PutMapping)2 NacosException (com.alibaba.nacos.api.exception.NacosException)1 Datum (com.alibaba.nacos.naming.consistency.Datum)1 Map (java.util.Map)1