【发布时间】:2018-02-16 22:08:30
【问题描述】:
我正在使用具有 Master-Worker 模式的 Akka 集群将作业分发到工作节点。 Kafka 和 JMS 消息传递具有 API 来浏览队列或主题中的消息。我可以知道在所有发送者和接收者之间跟踪 Akka 系统中的消息的最佳实践是什么,以便我可以有效地排除故障?有没有建立在 Akka 上的框架来做到这一点?
【问题讨论】:
标签: akka akka-cluster
我正在使用具有 Master-Worker 模式的 Akka 集群将作业分发到工作节点。 Kafka 和 JMS 消息传递具有 API 来浏览队列或主题中的消息。我可以知道在所有发送者和接收者之间跟踪 Akka 系统中的消息的最佳实践是什么,以便我可以有效地排除故障?有没有建立在 Akka 上的框架来做到这一点?
【问题讨论】:
标签: akka akka-cluster
您可以为所有收到的消息和参与者生命周期状态更改启用参与者级别的日志记录:
akka {
loglevel = "DEBUG"
stdout-loglevel = "DEBUG"
loggers = ["akka.event.Logging$DefaultLogger"]
// log-config-on-start = on
log-dead-letters = 10
log-dead-letters-during-shutdown = on
actor {
debug {
receive = on
autoreceive = on
lifecycle = on
unhandled = on
}
}
}
为了让它工作,你所有的actors都需要扩展ActorLogging trait并且actors中的receive()方法也需要稍微调整一下:
def receive: Receive = LoggingReceive {
// message handlers go here
}
【讨论】: