使用Axon框架中的TrackingToken实现Partial Replay功能,可以通过以下代码获取startPosition的TrackingToken:
TrackingToken trackingToken = eventStore.openStream(eventMessage.getIdentifier())
.asEventMessageStream()
.filter(m -> m.getType().getName().equals(eventType.getName()))
.filter(m -> m.getSequenceNumber() >= sequenceNumber)
.findFirst()
.map(EventMessage::getTrackingToken)
.orElse(null);
其中,eventType和sequenceNumber表示想要回放的事件类型和起始事件序列号。获取到TrackingToken后,即可通过Axon提供的PartialStreamableMessageSource接口实现Partial Replay功能。