我目前正在製作一個相當大的基於Akka的Java應用程序,並且遇到了一些問題,這些問題讓我感到無法接受。Akka消息和演員的命名約定
我目前的封裝佈局看起來有點像這樣:
我Mobile
類作爲actors
包裏面的演員監事。
因爲我不希望創建一組新演員的每一個HttpClient
和Account
,我與端點ActorRef
接收最後的結果通過周圍那些消息對象,其存儲在信息包,一起。但是,這會產生一個非常混亂的messages
包,每個演員都有不同的消息。例如。 MobileForActor1
,Actor1ForMobile
,MobileForActor2
等。現在我的問題是,有沒有使用這種東西,這個問題涉及和是我的結構(Mobile
- >Actor1
- >Mobile
- >Actor2
- >等)公約的方式阿卡想要它或我必須只是瀑布消息(Mobile
- >Actor1
- >Actor2
- >等)?
現在我發送ConnectMessage
我Mobile
演員,然後將其發送到Actor1
,Actor1
過程,併發送一個新的消息發回Mobile
,Mobile
發送一個響應然後Actor2
如此循環下去,用新的消息根據舊消息創建。例如。 new Message2(message1.foo, message1.bar, message1.baz, newComputatedResult, newComputatedResult2, etc);
這是一個很好的做法,還是應該包含舊的實例(可能包含無用的信息)幷包含新的東西?例如。 new Message2(message1, newComputatedResult, newComputatedResult2, etc);
或者我應該做一些完全不同的事情嗎?
我想過使用TypedActors,但那些需要使用瀑布模式,我不知道如何通過想要接收最終結果的偵聽器的ActorRef。
我希望我讓自己足夠容易理解,因爲英語不是我的少女語言,這個問題對每個人都是清楚的。
我是Akka的開發者,很喜歡這個主意,但由於文檔沒有很好地介紹,所以我覺得這是最好的地方。謝謝閱讀!
你能舉出一些好消息命名的例子嗎?例如,我有一個供應商和消費者。消費者想問供應商它有多少商品。你如何爲請求和響應命名消息? –
@TemaBolshakov - 「GetGoodsCountRequest」和「GetGoodsCountResponse」如何? –
不確定這些名稱在scala中足夠習慣用法。我喜歡第一個,但後面看起來有點多餘。用Int來回應可能更好?或者爲Int定義類型別名,例如'輸入GoodsCount = Int'。斯卡拉最好的選擇是什麼? –