我们对功能区和尤里卡的顶部使用假死。佯/色带/尤里卡 - 被Apache的HttpClient池支持的RESTClient实现创建,但从未使用过
我们注意到一个com.netflix.niws.client.http.RestClient
实例为每个客户端佯自动创建,但从未使用过。相反,Feign.Builder
会创建一个feign.ribbon.RibbonClient
,将实际的HTTP调用委托给一个feign.Client.Default
实例。后者使用没有任何池功能的标准Java HttpConnection。
不幸的是,这些看似无用RestClient
实例的创建(每假死客户之一)有它自己的Apache HttpClient的,自己的连接池,家政线程和度量的东西...
快速看一下/度量致动器示出了端点等的指标:
counter.servo.<client name>_createnew: 0
counter.servo.<client name>_delete: 0
counter.servo.<client name>_release: 0
counter.servo.<client name>_request: 0
counter.servo.<client name>_reuse: 0
这些指标由com.netflix.http4.NamedConnectionPool
创建。无论任何活动,它们的价值都保持在0。
是否有人经历了同样的行为呢? 为什么这些RestClient
实例为每个假客户端创建并从未使用过?
但是,我注意到'RestClient'正在使用,如果我使用Spring RestTemplate来调用远程服务而不是Feign客户端。是否有可能通过功能区配置始终创建RestClient,即使未使用任何其他组件(例如使用Feign时)也是如此? –
这似乎是因为'SpringLBClientFactory'使用功能区的'SpringClientFactory'。后者创建一个'RestClient',即使其他bean不需要。可能是那个工厂方法应该标记为'@ Lazy'? –
也许你应该在github上打开一个关于这个问题(似乎应该消失)? –