vqianxiao commented on PR #15883: URL: https://github.com/apache/dubbo/pull/15883#issuecomment-3718404153
> > > > > 所以你没有遇到过调用者刷新延迟的情况吗?根据我对你代码的理解,如果请求正在路由,调用者列表就无法刷新。因此,刷新过程会被阻塞,直到路由完成。但是,如果路由持续进行(例如,读取锁被持续持有),则获取写入锁所需的时间会更长。 > > > > > > > > > > > > 您说得对。我发现,在服务提供商的线路开放期间,由于线路锁定,导致杜博地区的整体通话时长增加,直到服务提供商完成线路开放为止。所以,我想知道是否有更好的方法来解决这个问题,但目前我能想到的就是先锁定线路,以确保通话可以正常进行,而不是完全无法直接拨打电话。 > > > > > > > > > @vqianxiao我已经检查过了。这个检查是为多链设计而做的,所以不能移除。但是,您的问题也需要解决。我仍然对这种情况有所顾虑,但经过仔细考虑,我认为实现公平锁是一个可行的解决方案——也就是说,写锁会在读锁尝试获取之前被获取。虽然这可能会带来一些性能开销,但为了数据一致性,这是可以接受的。您是否有时间在高 QPS 场景下验证一下这个锁是否能按我们设计的那样工作?如果它不能正常工作,我们必须考虑重构这个锁。此外,如果您有更好的解决方案,我们会优先考虑。这个问题目前非常重要,我们需要尽快解决。 > > > > > > 我测试了公平锁,发现释放期间时间消耗会有一些波动,但永远不会出现整个服务消费者完全无法调用而必须重启的情况。 > > 那么,何不修改一下你的 Pull Request,使用公平锁呢? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
