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