我现在正在开发一个位于单个进程空间中的系统;我们将其分解为几个进程,最初是在同一个机器上运行,但最终分布在几台不同的机器上。我倾向于使用 ESB(NServiceBus、Rhino ESB)或者可能使用 WCF + 队列来处理我们的应用程序具有的发布/订阅和请求/响应场景。
但是,我在抽象上苦苦挣扎:我不希望各种组件知道它们正在总线上交谈。当前连接各种服务的 API 可以很好地转换为这种模型,但我想对客户端和服务器端隐藏它。没有为客户端和服务器编写大量自定义代理代码,有没有更好的方法来解决这个问题?我意识到 WCF 可以根据服务定义自动生成代理,但我真的很喜欢我通过(比如)rhino servicebus 获得的其他一些东西。
理想情况下,我希望能够仅使用 IoC 交换不同的实现(有和没有 ESB/消息传递层)(知道必须按照惯例对可以通过接口传递的内容进行限制),但我'不知道该去哪里。我真的更希望不必将当前接口上的每个方法调用都更改为它自己的离散消息类。
有什么资源/模式/工具可以帮助我做到这一点吗?如果我不清楚,请提出问题。谢谢。