Spring cloud 假装客户端并发问题

Spring cloud 假装客户端并发问题,spring-cloud,netflix-eureka,hystrix,spring-cloud-feign,feign,Spring Cloud,Netflix Eureka,Hystrix,Spring Cloud Feign,Feign,我已经安装了springcloud(Camden.SR7)和Eureka(1.3.5.RELEASE),Config server以及一些springboot(1.5.7.RELEASE)微服务。微服务之间的通信通过Feign客户端执行(Hystrix被禁用)。虽然这在开发过程中可以正常工作,但我注意到,在高流量情况下,当同一微服务之间同时发出多个调用时,线程会死锁,并且不会收到响应。这似乎表明,在多线程中,伪客户机的行为不正确 我目前使用的是信号量隔离策略。我还尝试将隔离策略更改为THREAD

我已经安装了
springcloud(Camden.SR7)
Eureka(1.3.5.RELEASE)
Config server
以及一些
springboot(1.5.7.RELEASE)
微服务。微服务之间的通信通过
Feign
客户端执行(
Hystrix
被禁用)。虽然这在开发过程中可以正常工作,但我注意到,在高流量情况下,当同一微服务之间同时发出多个调用时,线程会死锁,并且不会收到响应。这似乎表明,在多线程中,伪客户机的行为不正确

我目前使用的是
信号量
隔离策略。我还尝试将隔离策略更改为
THREAD
,并指定线程池,但在本例中,我的所有调用都出现403错误。我还尝试了使用
feign-httpclient
作为替代方案,尽管这似乎改善了情况,但它需要硬编码URL,而不是从
Eureka
检索URL,因此我没有继续使用此解决方案

有没有办法解决这个问题?我的代码如下

bootstrap.yml:

hystrix:
  command:
    default:
      execution:
        isolation:
          strategy: SEMAPHORE
          semaphore:
            maxConcurrentRequests: 100000 # basically 'unlimited'
        timeout:
          enabled: false
      circuitBreaker:
        enabled: false
      fallback:
        enabled:  false
ribbon:
  ConnectTimeout: 180000
  ReadTimeout: 180000
假装客户端配置:

@Configuration
public class FeignClientConfiguration {
    @Bean
    public Retryer retryer() {
        return new Retryer() {
            @Override
            public void continueOrPropagate(RetryableException e) {
                throw e;
            }
            @Override
            public Retryer clone() {
                return this;
            }
        };
    }
    @Bean
    public RequestInterceptor requestTokenBearerInterceptor() {
        return requestTemplate -> {
     requestTemplate.header("Authorization",JWTUtil.getAuthorizationToken());
        };
    }
假装客户:

@FeignClient(name = "audit-log-service", configuration = FeignClientConfiguration.class)
public interface AuditLogFeignClient {
    @RequestMapping("/audit-log-ms/audit/save")
    void saveEntityToDatabase(@RequestBody Object object);
}

您可以在yml配置文件中添加属性sharedSecurityContext:true。 当您使用隔离策略
thread


请参阅。

谢谢,这似乎有效。通过添加此属性,我不再使用线程策略获得403错误,这似乎解决了并发性问题。