0

在“实施领域驱动设计”中,弗农给出了将有界上下文与基于消息传递或 REST 的解决方案集成的详细示例,它还提到了数据库集成,但我知道共享数据库或至少 db 表之间不是一个非常干净的解决方案公元前。

但是,如果我想集成的 2 个 BC 本地托管在同一台服务器上,那么使用消息传递/rest/rpc 解决方案真的是个好主意吗?(对我来说,这似乎更适合远程托管的 BC)

否则,除了数据库集成,还有什么其他选择?在同一个进程中托管两个 BC 并直接调用它(仍然使用适配器和翻译器进行干净分离)?

谢谢

4

2 回答 2

2

您可以考虑使用 0MQ 之类的东西在同一台服务器上进行进程间通信。我过去也只是按照您的建议在同一进程中托管事物,并且只是使用接口/内存消息传递来分离上下文。

一切最终都是关于权衡的,所以你只需要决定你愿意接受什么级别的隔离。最简单的解决方案是通过文件夹和界面在解决方案内部进行分离,另一端是完全独立的服务器。

于 2016-08-11T19:47:54.873 回答
1

我认为位置不应该在 BC 之间进行整合。

确实还有其他因素需要考虑,例如保证交付给收件人,以确保进行处理。无论两个 BC 是否托管在同一台服务器上,这都应该是必需的。

忽略位置的另一个原因是,当您需要扩展时,您的架构应该能够从一开始就处理它。

正如 tomliversidge 所提到的,可以使用一些部署机制(例如非持久消息传递)来加快速度,但肯定会有所取舍,这必须是一个有意识的决定。

于 2016-08-12T06:16:13.053 回答