使用EventStore作为ReadJournal
和akka-persistence
API来构建持久视图。
我面临的问题是,在事件持续存在后,我在EventStore GUI中看不到标签。因此,我不确定正确的标记事件是否在事件库中持久存在。
通过http://pkaczor.blogspot.in/2015/12/akka-ddd-integrating-eventstore.html和一个小测试,我发现我无法通过currentEventsByTag
akka持久性API读取事件存储中标记所持有的事件。
我的写事件适配器如下所述。
public class ViewEventAdapter implements WriteEventAdapter {
@Override
public String manifest(Object event) {
return "";
}
@Override
public Object toJournal(Object event) {
if (event instanceof DomainEvent) {
DomainEvent domainEvent = (DomainEvent) event;
return tagged(domainEvent , "ViewRelated");
}
return event;
}
private Tagged tagged(Object event, String tag) {
Set<String> tags = new HashSet<String>();
tags.add(tag);
return new Tagged(event, tags);
}
}
以下是配置。
akka.persistence {
journal {
plugin = "eventstore.persistence.journal"
event-adapters {
tagger = "com.wt.domain.write.events.ViewEventAdapter"
}
event-adapter-bindings {
"com.wt.domain.write.events.DomainEvent" = tagger
}
}
}
最后是我坚持使用eventByTag的相关代码。
private void handle(DomainEvent event) {
ViewEventAdapter viewAdapter = new ViewEventAdapter();
persist(viewAdapter.toJournal(event), evt -> {
domainObject.update(evt);
sender().tell("Done"), self());
});
}
}
非常感谢任何有关此事的帮助。
此处有类似的问题还有另一个问题:Why doesn't the Akka Persisence Query Read Journal retrieve my events?