我注意到Spring-Cloud ZUUL强制执行隔离到SEMAPHORE而不是THREAD默认值(根据Netflix的推荐).
评论org.springframework.cloud.netflix.zuul.filters.route.RibbonCommand说:
我们希望默认为信号量隔离,因为这包含了另外两个已经线程隔离的命令
但我仍然没有得到它:-(那两个其他命令是什么?
以这种方式配置,Zuul只能调整加载但不允许超时并让客户端离开.简而言之,即使Hystrix超时设置为1000毫秒,只有在转发到链中的服务的调用返回时(或者由于例如ReadTimeout而超时),才会释放客户端.
我试图通过覆盖配置强制THREAD隔离(不幸的是,每个服务,因为在代码中强制默认),一切似乎按预期工作.但是,如果没有正确理解其含义,我并不热衷于这样做 - 当然关于代码中的注释以及Spring的Zuul版本采用的默认值.
有人可以提供更多信息吗?谢谢