是否有可能知道在 Akka 的 "Distributed Publish Subscribe in Cluster" 中收到了关于哪个主题的消息?

Is it possible to know which topic a message was received on in Akka's "Distributed Publish Subscribe in Cluster"?

我有一个 Akka 系统,其中的 Actors 代表传感器。每次传感器进行观察时,其对应的 Actor 都会在内部 pub/sub 主题上发布该观察结果。这使得扩展观察的使用变得容易(由一个 Actor 保存在数据库中,由另一个 Actor 发布到 MQTT 代理,等等)

让接收者知道它收到的消息是关于哪个主题的一个可能的解决方案是在消息中包含该主题。但是,这对我来说似乎是糟糕的设计。是否可以在 Akka 的 Actor 中查看当前消息是在哪个主题上收到的?

Akka 关于集群中分布式发布订阅的文档 (http://doc.akka.io/docs/akka/current/java/distributed-pub-sub.html) 据我所知没有提到这一点。

据我所知,这并不是分布式 Pub/Sub 的内置功能。我通常会通过制作某种信封来解决这个问题:

case class PubSubEnvelope[MessageType](topic: String, payload: MessageType)

为了额外的安全,也许你想为 MessageType 制作某种超类型以便你可以约束它,并为 topic 而不是 [=13 制作一些类似枚举的结构=].