Hướng dẫn tích hợp Spring Cloud Sleuth trong ứng dụng Spring Boot
Example
- Trong ví dụ này bao gồm 3 service
- ServiceA: một service public 2 api và gọi vào ServiceB, ServiceC
- ServiceB: http service
- ServiceC: grpc service
- Thêm dependency spring-cloud-starter-sleuth trong mỗi service
Service A
- Thêm dependencies sử dụng trong grpc
Mặc định OpenFeign tích hợp sẵn sleuth, còn với gRPC cần sử dụng thêm dependency brave-instrumentation-grpc
- Cấu hình sleuth trong application.yml
- Cấu hình service B và C trong application.yml
- Sử dụng FeignClient để tạo HTTP client gọi đến ServiceB
- Viết gRPC client gọi đến ServiceC
Service B
- Viết Rest controller đơn giản
ServiceC
- Cấu hình port gRPC trong file application.yml
Test sleuth
Log service A
và service B
chung TraceId 48c90d4d61668476
- Gửi request test đến ServiceA, trong ServiceA sẽ gọi đến ServiceC
Log service A:
và service C
chung TraceId 9b6f0e1e5e5ca2da
Report lên Zipkin, Jaeger
- Setup Zipkin bằng docker-compose
Run docker-compose
- Trong mỗi service, thêm thông tin dependency
- Thêm cấu hình zipkin trong application.yml
- Ngoài ra, có thể sử dụng Jeager server để hiện thị report
- Setup Jeager server bằng docker-compose và cho phép nhận report theo format của zipkin
Test và xem kết quả trên Jeager UI tại địa chỉ http://localhost:16686/
Reference
Source code ở đây