有没有人能推荐一些在AXON 4.4.2和springBoot 2.3.3中实现快照的教程/示例项目?
我浏览了文档(https://docs.axoniq.io/reference-guide/axon-framework/tuning/event-snapshots#snapshotting)并执行了以下操作: AxonConfig.class
@Configuration
public class AxonConfig {
@Bean
public SnapshotTriggerDefinition app1SnapshotTrigger(Snapshotter snapshotter) {
return new EventCountSnapshotTriggerDefinition(snapshotter, 10);
}
}聚合
@Aggregate(snapshotTriggerDefinition = "app1SnapshotTrigger")
public class MyAggregate {
@AggregateIdentifier
private String id;
private String name;
@AggregateMember
private List<Address> addresses = new ArrayList<>();
private MyAggregate () {
}
@CommandHandler
private MyAggregate (CreateNameCommand createNameCommand) {
-----
}
@EventSourcingHandler
private void on(NameCreatedEvent nameCreatedEvent) {
----
} 我是不是错过了什么。它是否会在阈值10处创建快照。谢谢。
发布于 2020-09-09 18:14:28
不幸的是,在这种情况下,我们没有现成的示例演示。
从您的代码片段看,一切都已就绪。也许有一些其他的配置正在接管您的注释。
为了尝试一下,我将您的配置应用于我们的https://github.com/AxonIQ/giftcard-demo/
首先要注意的是,can指南如下
这里的这段代码将其配置为Bean
@Bean
public Repository<GiftCard> giftCardRepository(EventStore eventStore, SnapshotTriggerDefinition giftCardSnapshotTrigger) {
return EventSourcingRepository.builder(GiftCard.class)
.snapshotTriggerDefinition(giftCardSnapshotTrigger)
.eventStore(eventStore)
.build();
}
@Bean
public SpringAggregateSnapshotterFactoryBean snapshotter() {
var springAggregateSnapshotterFactoryBean = new SpringAggregateSnapshotterFactoryBean();
//Setting async executors
springAggregateSnapshotterFactoryBean.setExecutor(Executors.newSingleThreadExecutor());
return springAggregateSnapshotterFactoryBean;
}
@Bean("giftCardSnapshotTrigger")
public SnapshotTriggerDefinition giftCardSnapshotTriggerDefinition(Snapshotter snapshotter) {
return new EventCountSnapshotTriggerDefinition(snapshotter, 10);
}您可以查看客户端日志来检查快照是否工作正常:在同一agggregateId上发生10个事件后,您应该会找到此信息日志条目o.a.a.c.event.axon.AxonServerEventStore : Snapshot created
为了进行检查,您可以使用REST api从聚合curl -X GET "http://localhost:8024/v1/events?aggregateId=A01"中检索事件,这将生成一个包含从最新快照开始的事件的流:您将列出9个事件,直到处理第10个事件。之后,端点将列出快照中的事件。
您还可以检查/actuator/health端点:如果启用了showDetails (在EE中默认启用,在SE中默认不启用),它将显示最后一个快照令牌。
科拉多。
https://stackoverflow.com/questions/63767707
复制相似问题