本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

本示例是两个Spring Boot(Java)服务协作处理HTTP请求的应用,重点在于这些请求的时间会记录到分布式追踪系统Zipkin中。通过此示例,您可以查看整个操作的耗时以及每个服务所花费的时间。
!Zipkin截图
本示例最初是为2016年6月30日的分布式追踪网络研讨会制作的,适合对分布式追踪基础感兴趣的用户。
本示例包含两个服务:frontend(前端)和backend(后端),两者均向Zipkin报告追踪数据。启动演示需按以下步骤操作:
需在不同终端或窗口分别启动前端服务、后端服务和Zipkin:
启动后端服务:
./mvnw compile exec:java -Dexec.mainClass=sleuth.webmvc.Backend
启动前端服务:
./mvnw compile exec:java -Dexec.mainClass=sleuth.webmvc.Frontend
启动Zipkin:
curl -sSL [***] | bash -s java -jar zipkin.jar
http://localhost:8081(前端会调用后端服务http://localhost:9000/api,返回格式化日期结果)http://localhost:9411/?serviceName=backend(本地运行的Zipkin服务,内存存储追踪数据)服务名配置:Zipkin UI中的服务名默认使用应用名,通过以下配置设置:
spring.application.name=frontend # 前端服务名
采样率配置:所有入站请求均会被采样,且该决策会向下游传递,配置采样率(1.0表示100%采样):
spring.sleuth.sampler.probability=1.0
日志格式配置:以下日志格式可在输出中添加追踪ID和跨度ID:
logging.pattern.level=%d{ABSOLUTE} [%X{traceId}/%X{spanId}] %-5p [%t] %C{2} - %m%n
用户头传播:若传递user_name请求头,Brave会自动将其传播至后端:
curl -s localhost:8081 -H'user_name: JC'
分布式追踪仅包含已配置( instrumentation )的连接。若使用未自动配置的库,可参考以下示例集成常用功能:
git checkout add-webflux-tracing
此变更将示例修改为使用响应式Mono控制器,并通过WebClient(替代RestTemplate)实现前端到后端的调用。
git checkout add-apachehc-tracing
此变更将示例修改为使用Apache HttpClient(替代RestTemplate)实现前端到后端的调用。
git checkout add-mysql-tracing
此变更将示例修改为从MySQL读取时间戳(替代Spring Boot进程内时间),并添加Brave追踪拦截器以丰富现有追踪详情。
git checkout add-rabbit-tracing
此变更将示例修改为使用RabbitMQ(替代WebMVC)调用后端,Sleuth会自动配置Brave的spring-rabbit以添加追踪详情。
git checkout add-kafka-tracing
此变更将示例修改为使用Kafka(替代WebMVC)调用后端,当spring-kafka存在时,Sleuth会自动配置Brave的kafka-clients instrumentation。
还支持JMS、Dubbo、Java Flight Recorder、OpenTracing等技术的追踪集成,具体可通过对应git checkout命令查看示例(详见英文原文链接)。
使用以下命令构建包含示例的Docker镜像:
docker build -t openzipkin/example-sleuth-webmvc -f docker/Dockerfile .
启动后端服务容器:
docker run -it --rm -p 9000:9000 openzipkin/example-sleuth-webmvc backend
启动前端服务容器:
docker run -it --rm -p 8081:8081 openzipkin/example-sleuth-webmvc frontend
Sleuth基于Brave项目,可重用任何与Brave兼容的代码,也可使用HTTP之外的传输方式向Zipkin兼容服务发送数据。
如需更多帮助,可通过gitter联系我们!<|FCResponseEnd|>===SHORT_DESC=== 展示跨Spring Boot应用分布式追踪的基础示例,通过两个Spring Boot服务协作处理HTTP请求,并使用Zipkin记录追踪数据,便于查看整个操作耗时及各服务耗时情况。 ===FULL_DESC===# 跨Spring Boot应用分布式追踪基础示例
本示例是两个Spring Boot(Java)服务协作处理HTTP请求的应用,重点是这些请求的时间会记录到分布式追踪系统Zipkin中。通过此示例,您可以查看整个操作的耗时以及每个服务所花费的时间,是学***分布式追踪基础原理的实用案例。
!Zipkin截图
该示例最初为2016年6月30日的"分布式追踪网络研讨会"制作,适合对微服务延迟分析和分布式追踪感兴趣的开发者入门学***。
本示例包含两个服务:frontend(前端)和backend(后端),两者均向Zipkin报告追踪数据。启动演示需完成以下步骤:
需在不同终端或窗口分别启动前端服务、后端服务和Zipkin:
启动后端服务:
./mvnw compile exec:java -Dexec.mainClass=sleuth.webmvc.Backend
启动前端服务:
./mvnw compile exec:java -Dexec.mainClass=sleuth.webmvc.Frontend
启动Zipkin:
curl -sSL [***] | bash -s java -jar zipkin.jar
http://localhost:8081(前端会调用后端服务http://localhost:9000/api,返回格式化日期结果)http://localhost:9411/?serviceName=backend(可查看后端服务的追踪记录)服务名配置:Zipkin UI中显示的服务名默认对应应用名,配置方式:
spring.application.name=frontend # 前端服务名配置
采样率配置:控制请求采样比例(1.0表示100%采样),配置后会在服务间传递采样决策:
spring.sleuth.sampler.probability=1.0
日志格式配置:在日志中添加追踪ID和跨度ID,便于关联日志与追踪数据:
logging.pattern.level=%d{ABSOLUTE} [%X{traceId}/%X{spanId}] %-5p [%t] %C{2} - %m%n
用户头传播:通过user_name请求头可自动向后端传递用户信息:
curl -s localhost:8081 -H'user_name: JC' # 传递用户头示例
分布式追踪仅覆盖已配置的连接,以下示例展示如何集成常用技术的追踪能力:
git checkout add-webflux-tracing
变更内容:使用响应式Mono控制器,通过WebClient替代RestTemplate实现服务调用。
git checkout add-apachehc-tracing
变更内容:使用Apache HttpClient替代RestTemplate实现服务调用。
还支持MySQL、RabbitMQ、Kafka、JMS、Dubbo等技术的追踪集成,可通过对应git checkout命令查看示例(详见项目仓库链接)。
docker build -t openzipkin/example-sleuth-webmvc -f docker/Dockerfile .
启动后端服务:
docker run -it --rm -p 9000:9000 openzipkin/example-sleuth-webmvc backend
启动前端服务:
docker run -it --rm -p 8081:8081 openzipkin/example-sleuth-webmvc frontend
Sleuth基于Brave项目,可重用任何Brave兼容代码,也支持通过非HTTP传输方式发送数据至Zipkin兼容服务。
如需更多帮助,可通过gitter联系社区!
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429