Как заставить Spring Sleuth работать при использовании Feign builder - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь заставить Spring Slueth распространять идентификаторы трассировки через наши системы.

при проверке журналов в другой службе я заметил, что генерируются новые идентификаторы.

Я думал, что этоможет быть из-за моего использования Feign Builder, и я уже использовал okHttpClient.

Я столкнулся со следующим:

https://github.com/spring-cloud/spring-cloud-sleuth/issues/594

Как реализоватьОтслеживание Sleuth с Feign.Builder?

У меня настроены bean-компоненты следующим образом:

@Configuration
@RequiredArgsConstructor
public class OkHttpConfig {

  private final Properties properties;

  @Bean
  public OkHttpClient okHttpClient() {
    return new Builder()
        .connectTimeout(properties.getHttpTimeoutMillis(), TimeUnit.MILLISECONDS)
        .readTimeout(properties.getHttpTimeoutMillis(), TimeUnit.MILLISECONDS)
        .writeTimeout(properties.getHttpTimeoutMillis(), TimeUnit.MILLISECONDS)
        .connectionPool(new ConnectionPool(properties.getHttpPoolSize(),
            properties.getHttpKeepAliveMillis(), TimeUnit.MILLISECONDS))
        .build();
  }
@Configuration
public class HttpClientConfiguration {

  @Autowired
  private Properties properties;

  @Autowired
  private Client client;

  @Bean
  public SomeClient SomeClient(Client client, ObjectMapper objectMapper {
    return feignClient(properties.getUrl(), SomeClient.class, client,
            objectMapper);
  }

  public static <T> T feignClient(String baseUrl, Class<T> clientClass,
      Client client, ObjectMapper objectMapper) {
    return Feign.builder()
        .client(client)
        .decoder(new JacksonDecoder(objectMapper))
        .encoder(new JacksonEncoder(objectMapper))
        .target(clientClass, baseUrl);
  }

Я ожидал, что клиент будет упакован в реализацию трассировки, ноя продолжал получать следующую ошибку

Unsatisfied dependency expressed through field 'client'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No qualifying bean of type 'feign.Client' available: 
expected at least 1 bean which qualifies as autowire candidate.Dependency annotations:

Использование следующих версий:

Spring boot 2.1.2.RELEASE

org.springframework.cloud: spring-cloud-sleuth: 2.1.0.RELEASE

1 Ответ

0 голосов
/ 14 февраля 2019

В чате (https://chat.stackoverflow.com/rooms/188411/discussion-between-yk-47-and-marcin-grzejszczak) мы проанализировали текущую настройку. В нем отсутствовало определение бина и, что наиболее важно, стартер облачного источника для открытой симуляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...