首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面向新手的实用SOA

面向新手的实用SOA
EN

Stack Overflow用户
提问于 2009-04-15 19:15:46
回答 7查看 659关注 0票数 6

我完全是SOA世界的新手。因此,我正在研究一些"SOA框架/技术“,并试图了解如何利用它们来构建高可伸缩性(Facebook类)网站。

我想在这里解决几个“痛苦”:

  1. 可组合性(+管理依赖项,Pub/Sub)
  2. 语文-服务的独立性
  3. 可伸缩性与性能
  4. 高可用性

我研究了一些满足上述标准子集的技术:

  1. 节俭 -Facebook的跨平台RPC平台
  2. WCF -支持SOAP、JSON和REST,因此它可以被认为是语言互操作的。生成可用于生成java代理的WSDL文件。
  3. Microsoft DSS --我只是把它包括在我的调查中,但它似乎并不相关,因为它是高度状态驱动的,并且是.NET特有的。
  4. Web服务

现在,我明白了我是如何从上面得到一些可组合性和语言独立性的方面的。但是,我还没有找到关于如何使用上述/其他工具实现可伸缩性和高可用性的具体信息(而不是嗡嗡声)。最后,我来问我的问题:

如何利用SOA技术来解决我上面定义的痛苦?在哪里可以找到相关的技术指南?我想要的不仅仅是系统图,而是实际的库、代码示例、APIS.

EN

回答 7

Stack Overflow用户

发布于 2009-04-18 06:59:14

我认为这个问题与其说是工具,不如说是所涉及的概念。对这些项目的答复:

  1. 理解并内化有界上下文。保持不相关的部分是分开的,这对于在不同的服务上获得真正的重用非常重要。相关技术不会在这方面对你有所帮助,是你在适当的环境中将应用程序分开的,你可以适当地为不同的服务重用它。
  2. 基于已知协议的透明端点允许使用不同的技术实现不同的部分。
  3. 使操作流程类似于基于不同协议的独立操作,为您提供了许多可以添加层的地方。是使用大量资源的整个进程的一个特定子进程,而服务器不能再忍受它了,只需移动到一个单独的服务器。负载不断增加,而服务器不再承受它,添加一个额外的服务器并实现负载平衡。您也有更多的机会使用缓存和连接池。
  4. 有一个关键的子进程,需要随时可用,添加一个服务器,这样你就可以有故障转移。有一个需要始终“可用”的整体流程,可以在以后处理的部分使用队列。

你真的需要支持这种负载吗?设置与特定场景相关的适当性能/负载/互操作性目标。如果你真的需要支持这种负载,我建议你找一个已经处理过它的人。

如果它最终可能是一个负载,那么确定有限制的上下文,并设计那些具有SOA思维的人之间的交互。在您的代码库中,保持代码整洁是您所要做的所有事情,如使用TDD、松散耦合、集中集成测试等。有了好的代码,如果以后需要分离系统的各个部分,就会容易得多。

票数 6
EN

Stack Overflow用户

发布于 2009-04-24 23:49:06

关于服务和架构,亚马逊的CTO - Werner Vogels说了一些有趣和相关的东西:

  • 关于亚马逊技术平台的一次采访
  • 他博客上的一篇文章-- "最终一致-重新审视
  • 50分钟关于可用性和一致性的介绍
票数 2
EN

Stack Overflow用户

发布于 2009-04-18 05:55:06

IDesign.net有一个用于WCF的大量很棒的下载

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

https://stackoverflow.com/questions/753273

复制
相关文章

相似问题

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