Spring Boot 3.4追踪数据本地存储及Zipkin传输方式问询
问题2:使用不同传输方式发送到Zipkin
Zipkin支持HTTP以外的多种传输协议,以下是两种常用方案:
方案1:通过Kafka发送追踪数据
- 添加Kafka相关依赖:
implementation("io.micrometer:micrometer-tracing-bridge-otel") implementation("io.opentelemetry:opentelemetry-exporter-kafka") implementation("org.springframework.kafka:spring-kafka")
- 配置应用端和Zipkin服务:
- 应用
application.yaml配置:
management: tracing: sampling: probability: 1 otel: exporter: kafka: bootstrap-servers: localhost:9092 topic: zipkin # Zipkin默认监听的Topic
- 修改Zipkin的Docker Compose配置,启用Kafka消费:
version: '2.4' services: zipkin: image: ghcr.io/openzipkin/zipkin-slim:${TAG:-latest} container_name: zipkin environment: - STORAGE_TYPE=mem - KAFKA_BOOTSTRAP_SERVERS=kafka:9092 - KAFKA_TOPIC=zipkin ports: - 9411:9411 kafka: image: confluentinc/cp-kafka:latest container_name: kafka ports: - 9092:9092 environment: - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 zookeeper: image: confluentinc/cp-zookeeper:latest container_name: zookeeper ports: - 2181:2181 environment: - ZOOKEEPER_CLIENT_PORT=2181
方案2:通过RabbitMQ发送追踪数据
- 添加RabbitMQ相关依赖:
implementation("io.micrometer:micrometer-tracing-bridge-otel") implementation("io.opentelemetry:opentelemetry-exporter-rabbitmq") implementation("org.springframework.amqp:spring-rabbit")
- 配置应用端和Zipkin服务:
- 应用
application.yaml配置:
management: tracing: sampling: probability: 1 otel: exporter: rabbitmq: host: localhost port: 5672 username: guest password: guest queue: zipkin # Zipkin默认监听的队列
- 修改Zipkin的Docker Compose配置,启用RabbitMQ消费:
version: '2.4' services: zipkin: image: ghcr.io/openzipkin/zipkin-slim:${TAG:-latest} container_name: zipkin environment: - STORAGE_TYPE=mem - RABBIT_URI=amqp://guest:guest@rabbitmq:5672 - RABBIT_QUEUE=zipkin ports: - 9411:9411 rabbitmq: image: rabbitmq:3-management container_name: rabbitmq ports: - 5672:5672 - 15672:15672
内容的提问来源于stack exchange,提问作者gstackoverflow
相关产品推荐
相关产品推荐

