首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SOA应用程序中的SOA性能

SOA应用程序中的SOA性能
EN

Stack Overflow用户
提问于 2015-09-16 17:16:27
回答 1查看 164关注 0票数 0

我正在为一个传统的后端(假设一个Django实例管理一切)和一个类似于LinkedIn的web应用程序的面向服务的体系结构之间的决定而苦苦挣扎。我的意思是SOA有一个完全独立的数据访问接口(比方说Ruby + Sinatra ),它查询数据库,一个独立的聊天应用程序Twisted,通过其API使用Twisted,一个Django web服务器使用这些API来服务内容,等等。

我可以看到只有通过API才能对项目中的所有内容进行模块化和访问的优点:可伸缩性、测试等。然而,这难道不会损害站点的性能吗?我想所有模块都会通过HTTP请求进行通信,所以,这个框架会给站点中的所有内容增加很多延迟吗?有比HTTP更好的选择吗?

第二,关于开发的易用性,这真的会给我们的开发人员增加很多复杂性吗?特别是在第一阶段,直到我们得到了一个MVP。

编辑:我们是一个由两个开发人员和一个设计师组成的小组,但是我们没有最后期限,所以如果它带来更多的技术价值,我们可以处理一些额外的工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-16 18:13:44

简单地说,是的,SOA无疑将封装和可重用性转换为延迟。长话短说,这取决于你是如何做到的。

延迟对应用程序的影响与服务的细粒度成正比。如果您进行了非常细粒度的服务,您将不得不进行数百次连续调用来组装用户体验。如果您做了非常粗粒度的服务,您将不会从服务中获得任何可重用性,因为它们将与应用程序紧密耦合。

HTTP有其他的选择,但是如果您要使用自定义的东西,您需要问自己,为什么要使用服务?你为什么不直接使用库,完全避开网络层呢?

从API开始,您肯定会增加项目的成本和复杂性。这必须通过API提供的灵活性来平衡。在这种情况下,您可能会受益于将API内部结构化到您的代码库,但只需将它们作为模块调用即可。或者构建库而不是独立的API。

这在很大程度上取决于项目的规模。你是一支由1-3名开发人员组成的团队吗?或者你是一家拥有20-100个开发人员的企业,他们都需要想出一种方法来划分一个项目,而不需要互相影响?

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32614818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档