1

我有基于 spring-boot 的 mircroservice 环境,我在其中使用 zipkin 服务器和发现服务器(eureka)和配置服务器。现在我有一个休息微服务,它将日志发送到 zipkin 服务器,并且需要这个微服务来使用发现服务器解析 zipkin 服务器在哪里。

以下是我在其余微服务的 application.properties 中的 zipkin 配置(从配置服务器中提取)。

spring.zipkin.baseUrl=http://MTD-ZIPKIN-SERVER/
spring.zipkin.locator.discovery.enabled=true
spring.zipkin.enabled=true
...

这里 MTD-ZIPKIN-SERVER 是发现服务器中的 zipkin 服务器名称。

发现服务器仪表板。 在此处输入图像描述 但它不会尝试从发现服务器解析 zipkin,而是尝试使用 spring.zipkin.baseUrl 直接连接,我得到以下异常。

由于 ResourceAccessException(对“ http://MTD-ZIPKIN-SERVER/api/v1/spans ”的 POST 请求的 I/O 错误:MTD-ZIPKIN-SERVER;嵌套异常是 java.net.UnknownHostException:MTD-邮编服务器)

org.springframework.web.client.ResourceAccessException:对“ http://MTD-ZIPKIN-SERVER/api/v1/spans 的POST 请求出现 I/O 错误": MTD-ZIPKIN-SERVER;嵌套异常是 java.net.UnknownHostException: MTD-ZIPKIN-SERVER at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:666) at org.springframework.web.client。 RestTemplate.execute(RestTemplate.java:628) at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:590) at org.springframework.cloud.sleuth.zipkin.RestTemplateSender.post(RestTemplateSender.java:73)在 org.springframework.cloud.sleuth.zipkin.RestTemplateSender.sendSpans(RestTemplateSender.java:46) 在 zipkin.reporter.AsyncReporter$BoundedAsyncReporter.flush(AsyncReporter.java:245) 在 zipkin.reporter.AsyncReporter$Builder.lambda$build $0(AsyncReporter.java:166) at zipkin.reporter.AsyncReporter$Builder$$Lambda$1.run(Unknown Source) at java.lang.Thread.run(Thread.java:745)引起:java.net.UnknownHostException:MTD-ZIPKIN-SERVER at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

如果我在属性 spring.zipkin.baseUrl 中提供准确的 zipkin url,如下所示

spring.zipkin.baseUrl=http://localhost:5555/

然后我的 rest-microservice 能够连接到 zipkin-server。

我的目标是从发现服务器读取 zipkin 服务器位置。我究竟做错了什么?我是否需要在我的 spring-boot rest-microservice 上添加一些 zipkin 启用注释?

4

1 回答 1

3

此功能在 edgware 发行版中可用。这对应于 sleuth 的 1.3.x 版本

于 2017-11-18T07:34:23.593 回答