diff --git a/lego/base/rpcx/service.go b/lego/base/rpcx/service.go index c06cb5b2e..fc37ba59f 100644 --- a/lego/base/rpcx/service.go +++ b/lego/base/rpcx/service.go @@ -165,6 +165,10 @@ func (this *RPCXService) RpcGo(ctx context.Context, servicePath string, serviceM ///servicePath = worker/[worker_1,worker_2] 表示随机选择[]里面的服务节点执行rpc方法 ///servicePath = worker/![worker_1,worker_2] 表示随机选择非[]里面的服务节点执行rpc方法 func (this *RPCXService) AcrossClusterRpcCall(ctx context.Context, clusterTag string, servicePath string, serviceMethod string, args interface{}, reply interface{}) (err error) { + if clusterTag == this.GetTag() { + err = fmt.Errorf("RPC equal clusterTag:%s ", clusterTag) + return + } return rpcx.AcrossClusterCall(ctx, clusterTag, servicePath, serviceMethod, args, reply) } @@ -176,6 +180,10 @@ func (this *RPCXService) AcrossClusterRpcCall(ctx context.Context, clusterTag st ///servicePath = worker/[worker_1,worker_2] 表示随机选择[]里面的服务节点执行rpc方法 ///servicePath = worker/![worker_1,worker_2] 表示随机选择非[]里面的服务节点执行rpc方法 func (this *RPCXService) AcrossClusterRpcGo(ctx context.Context, clusterTag string, servicePath string, serviceMethod string, args interface{}, reply interface{}) (call *client.Call, err error) { + if clusterTag == this.GetTag() { + err = fmt.Errorf("RPC equal clusterTag:%s ", clusterTag) + return + } return rpcx.AcrossClusterGo(ctx, clusterTag, servicePath, serviceMethod, args, reply, nil) } @@ -187,6 +195,10 @@ func (this *RPCXService) AcrossClusterRpcGo(ctx context.Context, clusterTag stri ///servicePath = worker/[worker_1,worker_2] 表示随机选择[]里面的服务节点执行rpc方法 ///servicePath = worker/![worker_1,worker_2] 表示随机选择非[]里面的服务节点执行rpc方法 func (this *RPCXService) AcrossClusterBroadcast(ctx context.Context, clusterTag string, servicePath string, serviceMethod string, args interface{}, reply interface{}) (err error) { + if clusterTag == this.GetTag() { + err = fmt.Errorf("RPC equal clusterTag:%s ", clusterTag) + return + } return rpcx.AcrossClusterBroadcast(ctx, clusterTag, servicePath, serviceMethod, args, reply) }