我读过这个文档https://doc.akka.io/docs/akka/current/general/message-delivery-reliability.html#dead-letters,上面写着:
参与者可以在事件流上订阅类 akka.actor.DeadLetter,有关如何执行此操作,请参阅 Event Stream。
在事件流文档:https://doc.akka.io/docs/akka/current/event-bus.html#event-stream中,示例代码似乎是经典的 Akka,并且包akka.actor.ActorSystem
不是akka.actor.typed.ActorSystem
:
import akka.actor.ActorRef;
import akka.actor.ActorSystem;
final ActorSystem system = ActorSystem.create("DeadLetters");
final ActorRef actor = system.actorOf(Props.create(DeadLetterActor.class));
system.getEventStream().subscribe(actor, DeadLetter.class);
但在 Akka 类型中,akka.actor.typed.ActorSystem.eventStream()
中没有名为subscribe()
的方法。
在创建类型化的ActorSystem和处理消息类型DeadLetter的类型化Actor之后,您应该能够订阅EventStream,如下所示。
import akka.actor.typed.eventstream.EventStream;
system.eventStream().tell(new EventStream.Subscribe(DeadLetter.class, actor));