rpc长连接

rpc接口设计:

public static Object call(int dstId, MsgRpc request);
public static void cast(int dstId, MsgRpc request, Response response)

功能要点说明:
1. call接口,同步调用。cast接口, 异步调用。
2. response标识此次调用方需要临时存储的一些逻辑信息,待返回验证或使用。
3. response类会有一个超时机制(有个管理类),过期清除。
4. request是抽象的数据通信信息。

public abstract class Response {
    private int seq;
    private long expire;

    private Lock lock;
    private Condition finish;

    private MsgRpc event;

    public Object goCall(){
        try {
            lock.lock();
            finish.await(RPC_TIMEOUT, TimeUnit.MILLISECONDS);
            if(event == null) {
                return null;
            }
            return event;
        }
        catch (Exception e){
        }
        finally {
            lock.unlock();
        }
        return null;
    }

    public void goNotify(){
        try {
            lock.lock();
            finish.signal();
        }
        catch (Exception e){
        }
        finally {
            lock.unlock();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值