我最近参与了一个项目,并没有参与实现Netflix-Zuul过滤器。我不完全确定要包含什么,团队中的其他人也不熟悉Zuul。
在我们的开发服务器上,在两次部署之间关机时,catalina日志中的消息会有一些问题。到目前为止,我还无法找到关于这条消息的含义的任何指导,或者从哪里开始解决它。任何指导都是值得赞赏的,因为我们担心这将是一个可伸缩性问题。请让我知道我可以提供哪些额外的信息,以帮助追踪这一点。
Jun 19, 2018 4:46:43 PM org.apache.catalina.loader.WebappClassLoaderBase checkThreadLocalMapForLeaks
SEVERE: The web application [studentApp] created a ThreadLocal with key of type [com.netflix.zuul.context.RequestContext$1] (value [com.netflix.zuul.context.RequestContext$1@59d4a2ba]) and a value of type [com.netflix.zuul.context.RequestContext] (value [{}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.发布于 2018-06-20 07:14:03
在代码中的某处,有一个正在创建的ThreadLocal。听起来像是在存储RequestContext,这样其他代码就可以在不将其作为参数的情况下访问它。这可能不是一种理想的方式,但有时我们会做坏事来按时完成事情。
如果这是我工作过的应用程序的日志,我会开始搜索ThreadLocal的创建位置。根据日志消息,我将开始查找:
new ThreadLocal<RequestContext>在你的代码中的某个地方。然后,您需要找出引用它的是什么,当您不再需要它时,也许可以找到某个地方对它调用remove()。例如,可能有代码在处理请求时设置它,而不是在请求处理结束时删除它。
https://stackoverflow.com/questions/50936898
复制相似问题