public Task <IActorResponse> Call(long actorId, IActorRequest message)
        {
            if (actorId == 0)
            {
                throw new Exception($"actor id is 0: {DCETRuntime.MongoHelper.ToJson(message)}");
            }

            string  address = StartConfigComponent.Instance.GetProcessInnerAddress(IdGenerater.GetProcessId(actorId));
            Session session = NetInnerComponent.Instance.Get(address);

            message.ActorId = actorId & IdGenerater.HeadMask | IdGenerater.Head;
            message.RpcId   = ++RpcId;

            var tcs = new TaskCompletionSource <IActorResponse>();

            requestCallback.Add(message.RpcId, new ActorMessageSender((response) =>
            {
                if (ErrorCode.IsRpcNeedThrowException(response.Error))
                {
                    tcs.SetException(new Exception($"Rpc error: {DCETRuntime.MongoHelper.ToJson(response)}"));
                    return;
                }


                tcs.SetResult(response);
            }));
            session.Send(message);
            return(tcs.Task);
        }
        public void Send(long actorId, IActorMessage message)
        {
            if (actorId == 0)
            {
                throw new Exception($"actor id is 0: {DCETRuntime.MongoHelper.ToJson(message)}");
            }
            string  address = StartConfigComponent.Instance.GetProcessInnerAddress(IdGenerater.GetProcessId(actorId));
            Session session = NetInnerComponent.Instance.Get(address);

            message.ActorId = actorId;
            session.Send(message);
        }