2011-01-28 59 views
2

我開始使用Java編寫Web應用程序項目,並且一直在研究要採用哪種架構。Domain-Event-Driven Architecture

這將有n服務(計費,報告,銷售,客戶關係管理等),這取決於服務,可能會或可能不會作爲獨立的webapp工作。

我真的很喜歡Domain-Event-Driven的方法。事情是,我從來沒有做過這麼大的項目,我會很欣賞聽到一些想法和提示,在哪條路上。

與域事件驅動的架構,我的主要疑點有:

  • 如果我需要從其他服務的一些數據,是不是從那裏創建一個Web服務爲它和訪問所有數據?我會在這裏產生更深的耦合,這是我想避免的。還有哪些其他方法?

  • 持久性如何完成?每個服務都有自己的數據庫嗎?服務數據庫之間沒有關係?

  • 如果服務失敗會怎麼樣?它會丟失所有信息,因此將無法採取相應的行動,對吧?任何解決方法?

  • 如果ActiveMQ失敗怎麼辦?

非常感謝!

回答

3

如果我需要來自其他服務的一些數據,爲它創建一個Web服務並從那裏訪問所有數據是否正確?

是的。

我會在這裏產生更深的耦合,這就是我想要避免的。

假。你應該解釋一下你認爲會發生什麼耦合。

還有哪些方法?

面向服務的體系結構一直這樣做。替代品是更多緊密耦合。

持久性如何完成?每個服務都有自己的數據庫嗎?

是的。服務是獨立的。服務常常是大型打包應用程序的一部分。

服務數據庫之間沒有關係?

正確。

如果服務失敗會怎麼樣?

無賴。請求在隊列中備份,直到您重新啓動服務。

它會鬆散所有消息,因此將無法採取相應的行動,對不對?任何解決方法?

假。完全錯誤。您可以使用持久,可靠的消息隊列。

如果ActiveMQ失敗怎麼辦?

然後我們知道它的世界結束。 「失敗」是什麼意思?這是一個相當鬆散的耦合系統,可以解決許多問題。

+0

非常感謝您花時間!這很有幫助。 – 2011-01-28 21:45:27

相關問題