我有基于spring-boot的mircroservice环境,我使用zipkin服务器和发现服务器(eureka)和config-server。现在我有一个rest-microservice,它将日志发送到zipkin服务器,这个微服务需要解决zipkin服务器在哪里使用发现服务器。
以下是我在rest-microservice的application.properties(从config-server中提取)中的zipkin配置。
spring.zipkin.baseUrl=http://MTD-ZIPKIN-SERVER/
spring.zipkin.locator.discovery.enabled=true
spring.zipkin.enabled=true
...
此处MTD-ZIPKIN-SERVER是发现服务器中的zipkin-server名称。
发现 - 服务器仪表板。 但它没有尝试从发现服务器解析zipkin,而是尝试使用spring.zipkin.baseUrl直接连接,我得到以下异常。
由于ResourceAccessException而丢弃1个跨度(POST请求中的“http://MTD-ZIPKIN-SERVER/api/v1/spans”的I / O错误: MTD-基普金-SERVER;嵌套异常是java.net.UnknownHostException: MTD-基普金-SERVER)
org.springframework.web.client.ResourceAccessException:I / O错误 POST请求“http://MTD-ZIPKIN-SERVER/api/v1/spans”: MTD-基普金-SERVER;嵌套异常是java.net.UnknownHostException: MTD-ZIPKIN-SERVER在 org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:666) 在 org.springframework.web.client.RestTemplate.execute(RestTemplate.java:628) 在 org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:590) 在 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 $建立$ 0(AsyncReporter.java:166) at zipkin.reporter.AsyncReporter $ Builder $$ Lambda $ 1.run(未知 来自java.lang.Thread.run(Thread.java:745)引起的: java.net.UnknownHostException:MTD-ZIPKIN-SERVER at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) 在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
如果我在属性spring.zipkin.baseUrl中提供精确的zipkin url,如下所示
spring.zipkin.baseUrl=http://localhost:5555/
然后我的rest-microservice能够连接到zipkin-server。
我的目标是从discovery-srever读取zipkin-server位置。我究竟做错了什么?我是否需要在spring-boot rest-microservice上添加一些zipkin启用注释?
答案 0 :(得分:3)
此功能在edgware版本系列中可用。这相当于侦探版本1.3.x