Sam*_*AEI 2 rabbitmq docker zipkin spring-boot microservices
Zipkin 在本地运行良好,但在 docker 容器中运行不佳。所有的微服务都在Eureka中注册良好,并且可以很好地通信。但唯一的问题是Zipkin。我收到以下错误:
org.springframework.web.client.ResourceAccessException:“http://localhost:9411/api/v2/spans”的 POST 请求出现 I/O 错误:连接到 http://localhost:9411 [localhost/127.0.0.1]失败:连接被拒绝
我的 docker-compose.yaml 如下:
version: '3.8'
services:
currency-exchange:
image: samankt/springboot-udemy-currency-exchange:0.0.1-SNAPSHOT
mem_limit: 512m
ports:
- '8000:8000'
networks:
- saman-network
environment:
EUREKA.CLIENT.SERVICE-URL.DEFAULTZONE: http://naming-server:8761/eureka
EUREKA.INSTANCE.PREFERIPADDRESS: true
SPRING.ZIPKIN.BASE-URL: http://zipkin-server:9411/
RABBIT_URI: amqp://guest:guest@rabbitmq:5672
SPRING_RABBITMQ_HOST: rabbitmq
SPRING_ZIPKIN_SENDER_TYPE: rabbit
depends_on:
- naming-server
- rabbitmq
api-gateway:
image: samankt/springboot-udemy-currency-api-gateway:0.0.1-snapshot
mem_limit: 512m
ports:
- '8765:8765'
networks:
- saman-network
environment:
EUREKA.CLIENT.SERVICE-URL.DEFAULTZONE: http://naming-server:8761/eureka
EUREKA.INSTANCE.PREFERIPADDRESS: true
SPRING.ZIPKIN.BASE-URL: http://zipkin-server:9411/
RABBIT_URI: amqp://guest:guest@rabbitmq:5672
SPRING_RABBITMQ_HOST: rabbitmq
SPRING_ZIPKIN_SENDER_TYPE: rabbit
depends_on:
- naming-server
- rabbitmq
currency-converter:
image: samankt/currency-conversion:0.0.1-SNAPSHOT
mem_limit: 700m
ports:
- '8100:8100'
networks:
- saman-network
environment:
EUREKA.CLIENT.SERVICE-URL.DEFAULTZONE: http://naming-server:8761/eureka
EUREKA.INSTANCE.PREFERIPADDRESS: true
SPRING.ZIPKIN.BASE-URL: http://zipkin-server:9411/
SPRING.ZIPKIN.DISCOVERYCLIENTENABLED: true
RABBIT_URI: amqp://guest:guest@rabbitmq:5672
SPRING_RABBITMQ_HOST: rabbitmq
SPRING_ZIPKIN_SENDER_TYPE: rabbit
depends_on:
- naming-server
- rabbitmq
naming-server:
image: samankt/naming-server:0.0.1-SNAPSHOT
mem_limit: 512m
ports:
- '8761:8761'
environment:
SPRING.ZIPKIN.BASE-URL: http://zipkin-server:9411/
networks:
- saman-network
zipkin-server:
image: openzipkin/zipkin:latest
mem_limit: 400m
ports:
- '9411:9411'
networks:
- saman-network
environment:
RABBIT_URI: amqp://guest:guest@rabbitmq:5672
depends_on:
- rabbitmq
restart: always
rabbitmq:
image: rabbitmq:3.8.12-management
ports:
- '5672:5672'
- '15672:15672'
networks:
- saman-network
networks:
saman-network:
Run Code Online (Sandbox Code Playgroud)
小智 6
该错误告诉您连接http://localhost:9411/api/v2/spans被拒绝。当您在 docker 容器内运行应用程序时,您需要不使用 localhost 发送请求,而是通过 docker 网络(在您的情况下为 saman-network)发送请求。要访问运行 zipkin 的 docker 容器,您需要将请求发送到http://zipkin-server:9411/api/v2/spans.
从 Spring Boot 3 开始,Sleuth 已被弃用,您将需要使用micrometer。要使用 zipkin 进行跟踪,您可以将以下 4 个依赖项添加到您的pom.xml文件中
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-bridge-brave</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-observation-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.zipkin.reporter2</groupId>
<artifactId>zipkin-reporter-brave</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
最后,要更改 Zipkin 端点以发送跟踪信息,您需要将以下内容添加到 application.yaml 文件中。
management:
tracing:
sampling:
probability: 1.0 # only for testing purpose, switch back to 0.1 for production code
zipkin:
tracing:
endpoint: http://localhost:9411/api/v2/spans
Run Code Online (Sandbox Code Playgroud)
使用 Spring 配置文件是一种很好的做法,因此您可以复制
application.yaml文件并将其命名为application-docker.yaml. 在此新文件中,您可以使用 zipkin 容器名称修改 Zipkin 端点zipkin-server。
management:
tracing:
sampling:
probability: 1.0 # only for testing purpose, switch back to 0.1 for production code
zipkin:
tracing:
endpoint: http://zipkin-server:9411/api/v2/spans
Run Code Online (Sandbox Code Playgroud)
SPRING_PROFILES_ACTIVATE=docker您可以激活环境中传递的 Spring 配置文件。
对于您来说,这个解决方案实施起来更快,但我没有测试它。您将 Zipkin url 作为环境值传递SPRING.ZIPKIN.BASE-URL到docker-compose.yml. 此属性与 Sleuth 包一起使用。使用 Spring Boot 3 和 micrometer 尝试通过:MANAGEMENT.ZIPKIN.TRACING.ENDPOINT: http://zipkin-server:9411/api/v2/spans
| 归档时间: |
|
| 查看次数: |
3200 次 |
| 最近记录: |