在proxy / zuul-gateway

时间:2018-05-06 18:33:42

标签: spring netflix-zuul zipkin

zipkin是一个用于跟踪请求以及跟踪服务处理请求在多服务项目中有用的时间跨度的工具,它不需要花费太多精力来设置你只需要在服务中添加zipkin依赖项。定义一个采样器bean。

在项目中添加以下依赖项

compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-zipkin', version: '1.3.2.RELEASE'

在你的项目中添加sampler bean

`    @Value("${spring.sleuth.sampler.percentage}")
  String percentage;

  @Bean 
  public PercentageBasedSampler defaultSampler() { 
    SamplerProperties configuration= new SamplerProperties();
    configuration.setPercentage(Float.parseFloat(percentage));
    return new PercentageBasedSampler(configuration); 
  }  

`

当你想要只有一部分你的请求跟踪发送给zipkin时,添加上面的bean,否则定义一个bean

` @Bean 
  public AlwaysSampler defaultSampler() { return new AlwaysSampler();
  }  
`

添加 在ur属性文件中spring.zipkin.base-url=localhost:9411并在上面定义的同一端口上托管zipkin服务器。

但如果你使用api-gateway访问zipkin(如果在云端部署)或在代理内部你可能会遇到在通过网关访问网关时损坏的ui元素的问题,我使用zuul with propertis as:

zuul.routes.zipkin.path=/zipkin/* zuul.routes.zipkin.url=http://localhost:9411

1 个答案:

答案 0 :(得分:0)

我找到的最简单的解决方案,用于解决zipkin通过网关损坏的ui问题 是通过更改zipkin服务器内的zipkin-server-shared.yml文件的以下属性

zipkin: ui: base-path: /zipkin 将上述属性更改为

zipkin: ui: base-path: /api/tracing/zipkin

并将ur zuul路径更改为以下内容 zuul.routes.zipkin.path=/api/tracing/*

并使用follwing url

访问zipkin

https://gatewayhost:port/api/tracing/zipkin/

注意配置中的小细节,不要忘记放尾" /"在url中的zipkin之后