Search in sources :

Example 1 with DistroDataResponse

use of com.alibaba.nacos.naming.cluster.remote.response.DistroDataResponse in project nacos by alibaba.

the class DistroClientTransportAgent method getData.

@Override
public DistroData getData(DistroKey key, String targetServer) {
    Member member = memberManager.find(targetServer);
    if (checkTargetServerStatusUnhealthy(member)) {
        throw new DistroException(String.format("[DISTRO] Cancel get snapshot caused by target server %s unhealthy", targetServer));
    }
    DistroDataRequest request = new DistroDataRequest();
    DistroData distroData = new DistroData();
    distroData.setDistroKey(key);
    distroData.setType(DataOperation.QUERY);
    request.setDistroData(distroData);
    request.setDataOperation(DataOperation.QUERY);
    try {
        Response response = clusterRpcClientProxy.sendRequest(member, request);
        if (checkResponse(response)) {
            return ((DistroDataResponse) response).getDistroData();
        } else {
            throw new DistroException(String.format("[DISTRO-FAILED] Get data request to %s failed, code: %d, message: %s", targetServer, response.getErrorCode(), response.getMessage()));
        }
    } catch (NacosException e) {
        throw new DistroException("[DISTRO-FAILED] Get distro data failed! ", e);
    }
}
Also used : DistroException(com.alibaba.nacos.core.distributed.distro.exception.DistroException) Response(com.alibaba.nacos.api.remote.response.Response) DistroDataResponse(com.alibaba.nacos.naming.cluster.remote.response.DistroDataResponse) DistroDataRequest(com.alibaba.nacos.naming.cluster.remote.request.DistroDataRequest) Member(com.alibaba.nacos.core.cluster.Member) DistroDataResponse(com.alibaba.nacos.naming.cluster.remote.response.DistroDataResponse) NacosException(com.alibaba.nacos.api.exception.NacosException) DistroData(com.alibaba.nacos.core.distributed.distro.entity.DistroData)

Example 2 with DistroDataResponse

use of com.alibaba.nacos.naming.cluster.remote.response.DistroDataResponse in project nacos by alibaba.

the class DistroDataRequestHandler method handleSyncData.

private DistroDataResponse handleSyncData(DistroData distroData) {
    DistroDataResponse result = new DistroDataResponse();
    if (!distroProtocol.onReceive(distroData)) {
        result.setErrorCode(ResponseCode.FAIL.getCode());
        result.setMessage("[DISTRO-FAILED] distro data handle failed");
    }
    return result;
}
Also used : DistroDataResponse(com.alibaba.nacos.naming.cluster.remote.response.DistroDataResponse)

Example 3 with DistroDataResponse

use of com.alibaba.nacos.naming.cluster.remote.response.DistroDataResponse in project nacos by alibaba.

the class DistroClientTransportAgent method getDatumSnapshot.

@Override
public DistroData getDatumSnapshot(String targetServer) {
    Member member = memberManager.find(targetServer);
    if (checkTargetServerStatusUnhealthy(member)) {
        throw new DistroException(String.format("[DISTRO] Cancel get snapshot caused by target server %s unhealthy", targetServer));
    }
    DistroDataRequest request = new DistroDataRequest();
    request.setDataOperation(DataOperation.SNAPSHOT);
    try {
        Response response = clusterRpcClientProxy.sendRequest(member, request);
        if (checkResponse(response)) {
            return ((DistroDataResponse) response).getDistroData();
        } else {
            throw new DistroException(String.format("[DISTRO-FAILED] Get snapshot request to %s failed, code: %d, message: %s", targetServer, response.getErrorCode(), response.getMessage()));
        }
    } catch (NacosException e) {
        throw new DistroException("[DISTRO-FAILED] Get distro snapshot failed! ", e);
    }
}
Also used : DistroException(com.alibaba.nacos.core.distributed.distro.exception.DistroException) Response(com.alibaba.nacos.api.remote.response.Response) DistroDataResponse(com.alibaba.nacos.naming.cluster.remote.response.DistroDataResponse) DistroDataRequest(com.alibaba.nacos.naming.cluster.remote.request.DistroDataRequest) Member(com.alibaba.nacos.core.cluster.Member) DistroDataResponse(com.alibaba.nacos.naming.cluster.remote.response.DistroDataResponse) NacosException(com.alibaba.nacos.api.exception.NacosException)

Example 4 with DistroDataResponse

use of com.alibaba.nacos.naming.cluster.remote.response.DistroDataResponse in project nacos by alibaba.

the class DistroDataRequestHandler method handleSnapshot.

private DistroDataResponse handleSnapshot() {
    DistroDataResponse result = new DistroDataResponse();
    DistroData distroData = distroProtocol.onSnapshot(DistroClientDataProcessor.TYPE);
    result.setDistroData(distroData);
    return result;
}
Also used : DistroDataResponse(com.alibaba.nacos.naming.cluster.remote.response.DistroDataResponse) DistroData(com.alibaba.nacos.core.distributed.distro.entity.DistroData)

Example 5 with DistroDataResponse

use of com.alibaba.nacos.naming.cluster.remote.response.DistroDataResponse in project nacos by alibaba.

the class DistroDataRequestHandler method handleQueryData.

private DistroDataResponse handleQueryData(DistroData distroData) {
    DistroDataResponse result = new DistroDataResponse();
    DistroKey distroKey = distroData.getDistroKey();
    DistroData queryData = distroProtocol.onQuery(distroKey);
    result.setDistroData(queryData);
    return result;
}
Also used : DistroKey(com.alibaba.nacos.core.distributed.distro.entity.DistroKey) DistroDataResponse(com.alibaba.nacos.naming.cluster.remote.response.DistroDataResponse) DistroData(com.alibaba.nacos.core.distributed.distro.entity.DistroData)

Aggregations

DistroDataResponse (com.alibaba.nacos.naming.cluster.remote.response.DistroDataResponse)6 DistroData (com.alibaba.nacos.core.distributed.distro.entity.DistroData)4 DistroDataRequest (com.alibaba.nacos.naming.cluster.remote.request.DistroDataRequest)3 NacosException (com.alibaba.nacos.api.exception.NacosException)2 Response (com.alibaba.nacos.api.remote.response.Response)2 Member (com.alibaba.nacos.core.cluster.Member)2 DistroException (com.alibaba.nacos.core.distributed.distro.exception.DistroException)2 RequestMeta (com.alibaba.nacos.api.remote.request.RequestMeta)1 DistroKey (com.alibaba.nacos.core.distributed.distro.entity.DistroKey)1 Test (org.junit.Test)1