我使用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());
});
}
}
非常感谢您对此事的任何帮助。
这里的类似行还有另一个问题:为什么 Akka Persisence Query Read Journal 不检索我的事件?