簡體   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