有很多小的wcf服务比一个好吗?

本文关键字:一个 服务 wcf | 更新日期: 2023-09-27 18:16:31

我正在为出租车服务开发软件。我的软件由wcf服务作为服务器和wpf应用程序作为客户端组成。功能正在增长,我的wcf服务现在有50多个方法。我想把我的一个大的WCF服务分成几个小的服务。这样做是个好主意吗?

有很多小的wcf服务比一个好吗?

如果您可以为每个服务定义明确的职责分离,我会说是的。不过,您应该尽量避免或最小化服务之间的耦合。请记住,如果你改变合同,你会破坏现有的客户,但听起来你是在控制这些。

这是一个非常常见的场景,您可以通过确保您的服务层本质上是一个门面来帮助您自己,以便更容易地移动内容。

如果拆分服务只会为公共功能(如DB访问)创建大量复制代码,或者需要添加诸如服务相互通信的附加功能之类的东西而使事情复杂化,我建议不要这样做。

另一个原因是:容错场景现在变得更复杂了。如果你的整个单片服务都死了,那就什么都不能用了。但是,如果您有4个相关的服务需要一起工作,那么您现在必须智能地处理部分故障场景,例如如果服务#3出现故障,而其他服务有需要它的一半工作时发生的情况。现在你必须能够在等待#3返回时将事物恢复到一致状态,或者能够持久化内容以便在它返回时返回。您的错误消息数量也增加了。