NettyRPC
NettyRPC copied to clipboard
NettyRPC is high performance java rpc server base on Netty,using kryo,hessian,protostuff support message serialization.
```java public class ProtostuffCodecUtil implements MessageCodecUtil { private static Closer closer = Closer.create();//存在线程安全问题 ...... } ```
在阅读作者源码的时候,发现了这样一个问题: 在单例RpcServerLoader中封装了messageSendHandler: public class RpcServerLoader { ... private MessageSendHandler messageSendHandler = null; ... } 而messageHandler一个的重要作用就是就是向RPC服务器发送信息: public class MessageSendProxy extends AbstractInvocationHandler { @Override public Object handleInvocation(Object proxy, Method method, Object[] args)...
您好,我学习Java半年多了,最近在学习这个项目的源代码,我觉得学到了很多东西。 不过我有点疑惑,这个Listener的作用是什么,感觉好像就是在ModuleProviderWrapper里面不断地循环调用这些listener的exported方法。能不能加一个Test示例 >< 最后感谢您对于源代码的分享!!
架构如下: Jstorm实时拉源数据,数据交给bolt处理,bolt处理完的数据同步该框架把数据回写到远程,当处理20W数据的时候,会出现超时的情况,无论同步的RPC或者异步的RPC请求,超时时间30s,网络状态良好,我把博主的代码copy到项目中,报错信息如下: cn.com.jit.pmi2.collection.netty.rpc.exception.InvokeTimeoutException: Timeout request,NettyRPC server request timeout! at cn.com.jit.pmi2.collection.netty.rpc.core.MessageCallBack.await(MessageCallBack.java:86) at cn.com.jit.pmi2.collection.netty.rpc.core.MessageCallBack.start(MessageCallBack.java:48) at cn.com.jit.pmi2.collection.netty.rpc.netty.MessageSendProxy.handleInvocation(MessageSendProxy.java:43) at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:84) at com.sun.proxy.$Proxy98.addOrUpdateUser(Unknown Source) at cn.com.jit.pmi2.collection.topology.bolt.user.AddUserBolt.execute(AddUserBolt.java:71) at com.alibaba.jstorm.task.execute.BoltExecutors.processTupleEvent(BoltExecutors.java:248) at com.alibaba.jstorm.task.execute.BoltExecutors.onEvent(BoltExecutors.java:184) at backtype.storm.utils.DisruptorQueueImpl.consumeBatchToCursor(DisruptorQueueImpl.java:261) at backtype.storm.utils.DisruptorQueueImpl.consumeBatchWhenAvailable(DisruptorQueueImpl.java:226) at...
你好,请问就是服务一段时间未访问,等再次访问之后finish.await会出现超时,有什么办法可以避免
An exception was thrown by com.newlandframework.rpc.netty.MessageRecvExecutor$2.operationComplete() io.netty.util.concurrent.BlockingOperationException: AbstractChannel$CloseFuture@12f3c0d1(incomplete) at io.netty.util.concurrent.DefaultPromise.checkDeadLock(DefaultPromise.java:391) ~[netty-all-4.0.36.Final.jar:4.0.36.Final] at io.netty.channel.DefaultChannelPromise.checkDeadLock(DefaultChannelPromise.java:157) ~[netty-all-4.0.36.Final.jar:4.0.36.Final] at io.netty.util.concurrent.DefaultPromise.await(DefaultPromise.java:252) ~[netty-all-4.0.36.Final.jar:4.0.36.Final] at io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:129) ~[netty-all-4.0.36.Final.jar:4.0.36.Final] at io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:28) ~[netty-all-4.0.36.Final.jar:4.0.36.Final] at io.netty.util.concurrent.DefaultPromise.sync(DefaultPromise.java:219) ~[netty-all-4.0.36.Final.jar:4.0.36.Final] at io.netty.channel.DefaultChannelPromise.sync(DefaultChannelPromise.java:117) ~[netty-all-4.0.36.Final.jar:4.0.36.Final] at...
MessageCallBack类 ``` public Object start() throws InterruptedException { try { lock.lock(); finish.await(10 * 1000, TimeUnit.MILLISECONDS); if (this.response != null) { return this.response.getResult(); } else { return null; } } finally...
哪里添加header 或者 metadata呀, 需要添加token