Zipkin服务端应使用java -jar独立启动,默认端口9411,开发可内存存储,测试/预发需配置MySQL或Elasticsearch存储,Docker部署须正确挂载连接串并确认ES版本与安全配置。
Zipkin服务端怎么启动才不踩坑
Zipkin服务端本身不强制依赖Java应用容器,但默认启动方式容易忽略存储选型和端口冲突问题。直接运行官方jar包最稳妥,别急着塞进Tomcat或Spring Boot里打包。
用
启动,这是官方推荐的独立进程方式;
默认监听
端口,若被占用需加
不配存储时数据全在内存,重启即丢——开发环境可以接受,但测试/预发环境务必加
或
,否则查不到跨小时段的链路
如果用Docker,别只拉
镜像就完事:MySQL版要额外挂载
连接串,ES版得确认ES 7.x+且
,否则
报错卡住启动
Spring Boot服务怎么正确上报trace到Zipkin
不是加个starter就自动上报,关键在采样率、传输协议和endpoint配置。Spring Cloud Sleuth 3.x起默认用
实现,但底层HTTP上报易被防火墙拦截,gRPC更稳。
必须显式配置
,否则Sleuth会尝试连
但收不到响应(无报错,只是静默丢数据)
采样率控制靠
,设
时每10个请求只上报1个——线上调高可能压垮Zipkin,调低则漏掉关键异常链路
HTTP上报走
,如果Zipkin启用了HTTPS或反向代理,得同步配
并确保
没被中间件篡改;更推荐
,需额外加
依赖
Feign调用为啥链路断在服务间
Feign默认不透传traceId,尤其当服务A用OpenFeign调B,而B是老Spring MVC写法时,
头根本收不到,链路直接切成两段。
确认A服务已引入
且
开启,Feign Client接口方法上别加
覆盖默认透传头
B服务如果是非Spring Cloud项目,得手动解析
、
等头,并用
或
重建上下文,否则Sleuth无法关联
如果B服务用了Dubbo,Feign和Dubbo混用时,
可能被Dubbo的
优先拦截导致丢失,此时需在Dubbo侧显式注入
查不到链路?先盯紧这三处日志
Zipkin链路不上报,80%问题出在客户端日志盲区。服务端Zipkin的日志只告诉你“收到了什么”,但不告诉你“客户端是否真发了”。
Eclipse导入Android或其他的JAVA项目的正确方法 WORD版
本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
下载
立即学习
“
Java免费学习笔记(深入)
”;
客户端启动时搜
,没这句说明Sleuth没生效,检查
是否漏加或版本冲突
发起一次调用后,在客户端日志里grep
,有输出说明已生成span并准备上报;若无,可能是
返回了
,或
Bean被自定义Bean覆盖
Zipkin服务端日志搜
,没有则说明网络不通或客户端发到了错地址;若有但UI查不到,大概率是时间戳偏差太大(客户端和服务端时钟差超60秒),Zipkin会直接丢弃
时钟同步这事容易被忽略——K8s里Pod之间、宿主机和容器之间,ntp没对齐就会让span看起来“发生在未来”,Zipkin干脆不存。
java -jar zipkin-server-2.24.0-exec.jarzipkin-server9411--server.port=9412--STORAGE_TYPE=mysql--STORAGE_TYPE=elasticsearchopenzipkin/zipkinmysql://...xpack.security.enabled=falseHealth check failedBravespring.zipkin.base-url=http://localhost:9411/http://localhost:9411/api/v2/spansspring.sleuth.sampler.probability=1.00.1/api/v2/spansspring.zipkin.sender.type=webContent-Type: application/jsonspring.zipkin.sender.type=grpczipkin-sender-grpcX-B3-TraceIdspring-cloud-starter-openfeign@EnableFeignClients@RequestHeaderX-B3-TraceIdX-B3-SpanIdTracer.currentSpan()Tracing.newBuilder().build().tracer()TraceFilterFilterTracingFilterStarted Zipkin Brave auto-configurationspring-cloud-starter-sleuthReporting spanSamplerNEVER_SAMPLETracingAccepted 1 spans