每当有人谈到基于服务的体系结构时,他们经常提到可伸缩性,通常是相提并论的。然而,使用服务似乎增加了更多的开销,而不是减少开销,因为现在涉及到一种协议,如SOAP或REST。那么,当web应用程序的用户数量以可能的数量级扩展时,基于web服务的体系结构真的会增加性能优势吗?或者只是将可伸缩性需求转移到服务上,而不是核心应用程序上?
发布于 2009-03-12 13:56:22
可伸缩性和性能是两回事。是的,基于服务的方法确实增加了网络协议的开销,但对于能够在域中的任何应用程序中快速采用经过良好测试的服务的好处来说,这是最小的牺牲。
如果网络开销破坏了您想要构建的系统,那么显然SOA对您来说是错误的选择。请记住,并不是任何时候都必须通过HTTP访问服务。我想你会惊讶于某些协议(如net.tcp)能有多快。
发布于 2009-03-12 14:03:53
请记住,您可以向外扩展web服务以在多个服务器上运行,而不会影响客户端。这在紧密耦合的系统中不能很好地工作。
发布于 2009-03-12 13:57:37
设计合理的SOA允许系统中的每个组件独立于所有其他组件工作,并异步并行运行,因此性能和可伸缩性(两个不同的东西)都只受到系统中最慢/最不可伸缩的部分的限制,而不是所有组件串行执行所需的总时间。
然而,SOA并不适合所有的解决方案,所以如果您看不到对您的特定情况有任何明显的好处,那么可能没有任何好处。
https://stackoverflow.com/questions/638700
复制相似问题