智能同步调用

智能同步调用

智能同步调用对用户来说是非常简单的,用户不需要关心客户端具体会与哪个服务端通信,只需要关注消息本身即可。

智能同步调用模式会经过服务发现、服务容错、负载均衡等机制

智能同步调用 API

以下是该组件对外提供的智能同步调用接口,你可以使用该接口进行同步调用。

public interface ClusterInvoker {

    /**
     * 同步调用
     * @param message 消息体
     * @throws RpcException
     */
    MessageResponseBody invoke(Message message) throws RpcException;

    //~
}

参数详解:

  1. message 参数:
参数名类型必选说明
commandenum消息类型,默认值 MESSAGE
namespacestring命名空间,查看详情
msgIdstring标识消息的唯一 id
bodyEncodingstring预留字段
bodybyte[]消息体

使用示例

以下代码截取自 Open-Job,示例参考。

private MessageResponseBody doInvoke(Message message){
    MessageResponseBody response;
    try {
        response = clusterInvoker.invoke(message);
    }catch (RpcException e){
        throw new RpcException(e.getMessage());
    }
    if (Objects.nonNull(response) && response.getStatus() != ResponseStatus.SUCCESS){
        throw new RpcException("处理失败");
    }
    return response;
}