繁体   English   中英

是否有可能在Akka的“群集中的分布式发布订阅”中知道收到消息的主题?

[英]Is it possible to know which topic a message was received on in Akka's “Distributed Publish Subscribe in Cluster”?

我有一个Akka系统,Actors代表传感器。 每次传感器进行观察时,其相应的Actor都会在内部发布/订阅主题上发布此观察结果。 这样可以很容易地扩展观察的用法(由一个Actor保存在DB中,由另一个发布到MQTT代理,等等)

使接收者知道它接收消息的主题的可能解决方案是将主题包括在消息中。 然而,这对我来说似乎是糟糕的设计。 是否可以在Akka的Actor中查看当前消息的主题?

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

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

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

为了更加安全,也许你想为MessageType制作某种超类型,以便你可以约束它,以及一些类似枚举的topic结构而不是String

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM