-
Notifications
You must be signed in to change notification settings - Fork 563
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DefaultInvokeFuture#TimeoutScanner优化 #62
Comments
那么我们再回到问题的本质:就是删除异步调用future。也就是在客户端调用服务端客户端没有收到服务响应,那么超时后uture会一直占用cache。 |
使用 类似于netty 的Channel idle 的检测机制(HashedWheelTimer)如何? |
@Coneboy-k 不错, 是计划用hash时间轮试一试 |
@scanry @Coneboy-k 对于队列容量是个考验, 因为future只有超时的情况才会被移除 |
future在chm中的时候只要响应回复了就可以移除 |
我的CHM 存future不变。 PoolItemService.java 如果思路没问题,我尝试提交个PR |
经 @scanry 的提醒, 超时队列只存放invokeId, 然后再回到DefaultInvokeFuture#roundFutures中查找future就可以了 |
@Coneboy-k 你给的链接打不开啊 |
@fengjiachun gist.github.com 貌似被墙了。挂个代理试试? |
目前是遍历chm来查找超时future, 有一定竞争
The text was updated successfully, but these errors were encountered: