我有两个非常简单的spring-cloud-stream应用程序。 Service3,消息生产者,通过binder-kafka向消费者Service4发送消息。无法用spring-cloud-sleuth跟踪spring-cloud-stream监听器
我用spring-cloud-sleuth来追踪它们之间的跨度。但是在Zipkin服务器中只有Service3的跨度可用。 Service4没有跨度显示。
服务3
dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile('org.springframework.boot:spring-boot-starter-thymeleaf') compile('org.springframework.cloud:spring-cloud-starter-sleuth') // Marshal spans over a Spring cloud stream binder compile('org.springframework.cloud:spring-cloud-sleuth-stream') compile('org.springframework.cloud:spring-cloud-stream-binder-kafka') testCompile group: 'junit', name: 'junit', version: '4.11' } @SpringBootApplication public class Service3 { public static void main(String[] args) { SpringApplication.run(Service3.class, args); } } @Controller @EnableBinding(Source.class) public class WebController { @Autowired private Source source; @GetMapping("/srv4") private String getSrv4Info(){ String msg = "Hello Service 4"; this.source.output().send(MessageBuilder.withPayload(msg).build()); return "srv4"; } }
服务4
dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile('org.springframework.cloud:spring-cloud-starter-sleuth') // Marshal spans over a Spring cloud stream binder compile('org.springframework.cloud:spring-cloud-sleuth-stream') compile('org.springframework.cloud:spring-cloud-sleuth-zipkin-stream') compile('org.springframework.cloud:spring-cloud-stream-binder-kafka') runtime('io.zipkin.java:zipkin-autoconfigure-ui') testCompile group: 'junit', name: 'junit', version: '4.11' } @SpringBootApplication @EnableZipkinStreamServer public class Service4 { public static void main(String[] args) { SpringApplication.run(Service4.class, args); } } @EnableBinding(Sink.class) public class MsgReceiver { @StreamListener(Sink.INPUT) private void listen(Message<String> msg){ System.out.println(msg.getPayload()); } }
Servic4 (message consumer) is not traced
我错过了什么?
最后,我发现与我的应用程序相关的2个问题。 1.无法追踪带有@EnalbeZipkinStreamServer的应用程序。这看起来像一个设计。 – RocWay
是的,这是由设计完成的原因,我们不想跟踪示踪剂 –