Java 域事件驱动体系结构

Java 域事件驱动体系结构,java,architecture,soa,Java,Architecture,Soa,我正在用Java启动一个Web应用程序项目,我一直在研究采用哪种体系结构 它将有n个服务(计费、报告、销售、CRM等),这些服务取决于服务,可能作为独立的webapp工作,也可能不作为独立的webapp工作 我非常喜欢域事件驱动的方法。问题是,我以前从未做过这么大的项目,如果能听到一些想法和建议,我将不胜感激 对于域事件驱动体系结构,我的主要疑问是: 如果我需要来自其他服务的一些数据,那么为它创建一个Web服务并从那里访问所有数据是否正确?我会在这里产生更深的耦合,这是我想要避免的。还有哪些其

我正在用Java启动一个Web应用程序项目,我一直在研究采用哪种体系结构

它将有n个服务(计费、报告、销售、CRM等),这些服务取决于服务,可能作为独立的webapp工作,也可能不作为独立的webapp工作

我非常喜欢域事件驱动的方法。问题是,我以前从未做过这么大的项目,如果能听到一些想法和建议,我将不胜感激

对于域事件驱动体系结构,我的主要疑问是:

  • 如果我需要来自其他服务的一些数据,那么为它创建一个Web服务并从那里访问所有数据是否正确?我会在这里产生更深的耦合,这是我想要避免的。还有哪些其他方法

  • 持久性是如何实现的?每个服务都有自己的数据库吗?服务的DBs之间没有关系

  • 如果服务失败怎么办?它将丢失所有消息,因此无法采取相应的操作,对吗?有解决办法吗

  • 如果ActiveMQ失败怎么办

提前多谢

如果我需要来自其他服务的一些数据,那么为它创建一个Web服务并从那里访问所有数据是否正确

我会在这里产生更深的耦合,这是我想要避免的

错。你应该解释一下你认为这里会发生什么

还有哪些其他方法

面向服务的体系结构一直在这样做。备选方案是紧密耦合的

持久性是如何实现的?每个服务都有自己的数据库吗

对。服务是独立的。服务通常是大型打包应用程序的一部分

服务的DBs之间没有关系

如果服务失败怎么办

糟糕透了。请求将在队列中备份,直到您重新启动服务

它将丢失所有消息,因此无法采取相应的操作,对吗?有解决办法吗

错。完全错误。您可以使用持久、可靠的消息队列

如果ActiveMQ失败怎么办


然后我们所知道的世界就结束了。你说的“失败”是什么意思?这是一个松散耦合的系统,允许许多问题发生并得到解决。

非常感谢您抽出时间!这很有帮助。@alan.reid:信息不是“东西”。它不会崩溃。拥有部分队列的主机可能会停止,但作为一个整体,队列并不存在于任何一个位置。不,我知道,请原谅混淆,我指的是消息代理本身。现在这并不重要,这只是一个假设的情景。再次感谢!