Architecture 什么时候实施一项“计划”是合适的;脊椎;为了一个系统?

Architecture 什么时候实施一项“计划”是合适的;脊椎;为了一个系统?,architecture,Architecture,我知道有些软件系统实现消息总线或“spine”。这种技术适合什么应用?为什么?我从来没有听说过“脊椎”。然而,一个通用的体系结构是一个很好的例子 通常,当您有许多不同的组件需要订阅从其他组件发送的消息时,可以使用此选项。通常处于断开连接状态(触发并忘记),但有时需要回复 ESB不是处理双向通信的高速方式 Biztalk就是这样一个系统的例子。还有很多其他的,你显然可以自己编写代码 一个例子是订单管理和计费系统。假设客户下了订单。订单通知可以通过公共汽车发送。如果您有单独的计费和履行系统,那么总线

我知道有些软件系统实现消息总线或“spine”。这种技术适合什么应用?为什么?

我从来没有听说过“脊椎”。然而,一个通用的体系结构是一个很好的例子

通常,当您有许多不同的组件需要订阅从其他组件发送的消息时,可以使用此选项。通常处于断开连接状态(触发并忘记),但有时需要回复

ESB不是处理双向通信的高速方式

Biztalk就是这样一个系统的例子。还有很多其他的,你显然可以自己编写代码


一个例子是订单管理和计费系统。假设客户下了订单。订单通知可以通过公共汽车发送。如果您有单独的计费和履行系统,那么总线可以将消息分发给每个人,而订购系统不知道如何计费,甚至不知道由谁来履行。

这一切都取决于您的需要

例如,如果您有一个客户机/服务器应用程序,并且希望提供实时更新发布/订阅语义。那么,消息总线是理想的,因为您不想重新发明轮子

如果您有需要排队运行的进程,您也可以使用消息总线,因为您可以将所有项目转储到队列中,侦听的进程将拾取它们并根据需要进行处理

我们倾向于在交易系统中使用消息总线,但它可以用于任何需要向多个客户发送消息的情况。如果你只是一个客户端/服务器应用程序,不需要所有客户端都保持最新,那就有点过分了

然而,这完全取决于您的使用场景,所以很难说。查看消息总线提供了什么,并查看它是否在您的应用程序上下文中提供了任何帮助。问问自己,你能用简单的服务提供同样的服务吗?你需要发布/订阅模式吗?你需要有保证的消息传递吗?消息确认呢。您只是为了只读目的请求数据,还是它是一个完整的数据输入系统。是否涉及可从消息总线等中获益的工作流

主要的是研究这些系统提供了什么,看看它是否适合你。但也要考虑体积、可用性、可维护性等因素。你可以根据一个简单的场景找到多个解决方案,这些解决方案都可以从这样的事情中获得部分好处,但对于小项目来说,这可能是一种超高的技能