Spring Cloud 追踪Bus Events
2023-11-30 15:09 更新
可以通过设置spring.cloud.bus.trace.enabled=true
来跟踪Bus事件(RemoteApplicationEvent
的子类)。如果这样做,Spring Boot TraceRepository
(如果存在)将显示发送的每个事件以及每个服务实例的所有确认。以下示例来自/trace
端点:
{ "timestamp": "2015-11-26T10:24:44.411+0000", "info": { "signal": "spring.cloud.bus.ack", "type": "RefreshRemoteApplicationEvent", "id": "c4d374b7-58ea-4928-a312-31984def293b", "origin": "stores:8081", "destination": "*:**" } }, { "timestamp": "2015-11-26T10:24:41.864+0000", "info": { "signal": "spring.cloud.bus.sent", "type": "RefreshRemoteApplicationEvent", "id": "c4d374b7-58ea-4928-a312-31984def293b", "origin": "customers:9000", "destination": "*:**" } }, { "timestamp": "2015-11-26T10:24:41.862+0000", "info": { "signal": "spring.cloud.bus.ack", "type": "RefreshRemoteApplicationEvent", "id": "c4d374b7-58ea-4928-a312-31984def293b", "origin": "customers:9000", "destination": "*:**" } }
前面的迹线显示RefreshRemoteApplicationEvent
从customers:9000
发送,广播到所有服务,并由customers:9000
和stores:8081
接收(确认)。
要自己处理确认信号,您可以为应用程序中的AckRemoteApplicationEvent
和SentApplicationEvent
类型添加一个@EventListener
(并启用跟踪)。或者,您可以点击TraceRepository
并从那里挖掘数据。
任何Bus应用程序都可以跟踪acks。但是,有时,在中央服务中执行此操作很有用,该服务可以对数据进行更复杂的查询,或将其转发给专门的跟踪服务。
以上内容是否对您有帮助:
更多建议: