程序包 | 说明 |
---|---|
com.fr.cluster.engine.rpc.proxy.components | |
com.fr.cluster.rpc.base |
Created by juhaoyu on 2017/12/15.
|
com.fr.cluster.rpc.proxy |
Created by juhaoyu on 2017/12/15.
|
com.fr.cluster.rpc.proxy.filter | |
com.fr.rpc | |
com.fr.rpc.serialization |
限定符和类型 | 方法和说明 |
---|---|
boolean |
DefaultInvokeFilter.accept(Invocation invocation) |
void |
DefaultRemoteResultHandler.onError(ClusterNode marker,
Invocation invocation,
java.lang.Throwable error) |
void |
DefaultRemoteResultHandler.onSuccess(ClusterNode marker,
Invocation invocation,
java.lang.Object result) |
限定符和类型 | 方法和说明 |
---|---|
void |
ClusterInvokeHandler.done(ClusterNode marker,
Invocation invocation,
Result result)
结果处理器,用于异步rpc
|
static <T> T |
ClusterInvokerHelper.invoke(ClusterInvoker invoker,
ClusterNode node,
Invocation invocation) |
Result |
ClusterInvoker.invoke(ClusterNode node,
Invocation invocation)
调用指定机器
|
void |
ClusterInvoker.invoke(ClusterNode node,
Invocation invocation,
ClusterInvokeHandler handler)
异步调用指定机器
|
java.util.Map<ClusterNode,Result> |
ClusterInvoker.invokeAll(Invocation invocation)
调用所有机器
|
void |
ClusterInvoker.invokeAll(Invocation invocation,
ClusterInvokeHandler handler)
调用所有机器的某个invocation
每个机器处理完成都会调用一次handler
|
限定符和类型 | 方法和说明 |
---|---|
boolean |
SyncMethodFilter.accept(Invocation invocation) |
static void |
RemoteResultHandlerHelper.finish(RemoteResultHandler remoteHandler,
Invocation invocation,
java.util.Map<ClusterNode,Result> remoteResults) |
java.lang.Object |
RPCTargetSwitcher.invoke(ClusterInvoker invoker,
java.lang.Object localTarget,
Invocation invocation,
RemoteResultHandler remoteHandler) |
java.lang.Object |
RPCInvokeStrategy.invoke(ClusterInvoker invoker,
java.lang.Object localTarget,
Invocation invocation,
RemoteResultHandler remoteHandler)
定义调用策略
例:
public Object invoke(ClusterInvoker invoker, Object localTarget, Invocation invocation, RemoteResultHandler remoteHandler) throws Throwable {
Object result = invocation.getMethod().invoke(localTarget);
invoker.invokeAll(invocation, RemoteResultHandlerHelper.newAdaptor(remoteHandler));
return result;
}
|
void |
RemoteResultHandler.onError(ClusterNode marker,
Invocation invocation,
java.lang.Throwable error)
RPC抛出异常时
包括网络异常、对端执行时异常等
|
void |
RemoteResultHandler.onSuccess(ClusterNode marker,
Invocation invocation,
java.lang.Object result)
正常结束返回结果
|
限定符和类型 | 方法和说明 |
---|---|
RPCProxyFactory.Builder<T> |
RPCProxyFactory.Builder.setInvokeFilter(Filter<Invocation> filter)
自定义选择某个调用是否需要广播,默认实现的所有接口中定义的方法都调用
|
限定符和类型 | 方法和说明 |
---|---|
boolean |
AnnotationInvocationFilter.accept(Invocation invocation) |
限定符和类型 | 方法和说明 |
---|---|
static Invocation |
Invocation.create(java.lang.Class<?> clazz,
java.lang.String methodName)
无参数的方法调用
|
static Invocation |
Invocation.create(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class[] paramTypes,
java.lang.Object... params)
构造方法调用
|
static Invocation |
Invocation.create(java.lang.reflect.Method method,
java.lang.Object... params)
指定方法
|
限定符和类型 | 方法和说明 |
---|---|
Invocation |
InvocationSerializer.deserialize(java.io.InputStream in) |
限定符和类型 | 方法和说明 |
---|---|
void |
InvocationSerializer.serialize(Invocation obj,
java.io.OutputStream out) |