首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用XRay与OpenFeign和AWS服务发现时,AWS OpenFeign错误的服务映射

在使用XRay与OpenFeign和AWS服务发现时,AWS OpenFeign错误的服务映射
EN

Stack Overflow用户
提问于 2022-03-22 00:21:09
回答 2查看 183关注 0票数 1

我正在测试在启用AppMesh和服务发现的情况下部署在AWS上的Spring服务的服务间通信。为了能够将消息从服务a发送到服务b,我必须使用OpenFeign客户机来生成代理类。

技术栈

XRay

  • ECS

  • ECR

  • Sleuth

  • AppMesh (虚拟节点,虚拟服务)

  • AWS服务发现(代替尤里卡)

期望行为

在AWS XRay中,它应该显示一个调用跟踪:

Client -> ServiceA -> ServiceB

实际行为

在AWS XRay中,我可以看到调用跟踪:

Client -> ServiceA Client -> ServiceB

另一个问题是如何告诉OpenFeign使用AWS中的HttpClient?

其他信息

存储库可在:https://github.com/czetsuya/lab-microservice-spring-aws上获得

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-17 11:59:08

我能够通过在dynamicNamingStrategy中使用tracingFilter来解决这个问题。

代码语言:javascript
复制
@Bean
  public Filter tracingFilter(final AWSXRayRecorder awsxRayRecorder) {

    log.info("Setting up AWS Xray tracing filter");
    return new AWSXRayServletFilter(SegmentNamingStrategy.dynamic(Optional.ofNullable(AWS_XRAY_SEGMENT_NAME).orElse(
        "xray-filter")));
  }

并创建一个HttpClientBuilder bean。

代码语言:javascript
复制
@Bean
  public HttpClientBuilder xrayHttpClientBuilder() {

    log.info("Setting up AWS xray http client configuration");
    return HttpClientBuilder.create();
  }

AWS XRay现在应该在跟踪中显示HTTP请求:

项目代码可在https://github.com/czetsuya/lab-microservice-spring-aws上使用。

票数 0
EN

Stack Overflow用户

发布于 2022-05-16 06:19:32

还不确定是否找到了解决方案,下面的代码片段可以帮助您:

首先,您需要使用虚拟Http客户端:

代码语言:javascript
复制
implementation 'io.github.openfeign:feign-httpclient:9.5.0'

创建使用来自aws x射线的apache http客户端的

代码语言:javascript
复制
    @Bean
    public Feign.Builder feignBuilder() {
        //aws xray http client
        CloseableHttpClient client = HttpClientBuilder.create().build();
        return Feign.builder()
                .retryer(Retryer.NEVER_RETRY)
                .client(new ApacheHttpClient(client));
    }

初始化客户端:

代码语言:javascript
复制
@Bean
    CallingService TestSnsPushNotificationApis(@Autowired Feign.Builder builder) {
        return builder.target(CallingService.class, "http://localhost:8081");
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71565605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档