SOA学习笔记

2015-2-10 0:16:14 - 谭礼孝

SOA ≈ 模块化开发 分布式计算

远程调用特指RPC(Remote Procedure Call)

以Java远程Service为例分析不同场景下,传输方式的某些可能较好选择:

    内网 同框架Java客户端 大并发:多路复用的TCP长连接 kryo (二进制序列化) (kryo也可以用Protostuff,FST等代替)
    内网 不同框架Java客户端:TCP Kryo
    内网 Java客户端 2PC分布式事务:RMI/IIOP (TCP 二进制)
    内网 Java客户端 可靠异步调用:JMS Kryo (TCP 二进制)
    内网 不同语言客户端:thrift(TCP 二进制序列化)

    外网 不同语言客户端 企业级特性:HTTP WSDL SOAP (文本)
    外网 兼顾浏览器、手机等客户端:HTTP JSON (文本)
    外网 不同语言客户端 高性能:HTTP ProtocolBuffer (二进制)

从性能上讲,tcp协议 二进制序列化更适合内网应用。从兼容性、简单性上来说,http协议 文本序列化更适合外网应用。

WebServices (经典的WSDL SOAP HTTP),满足了SOA的底线,而未必是某个具体场景下的最佳选择。

更理想的SOA Service最好能在可以支持WebServices的同时,支持多种远程调用方式,适应不同场景,这也是Spring Remoting,SCA,Dubbo,Finagle等分布式服务框架的设计原则。

标签:soa

关于我

喜欢简简单单的生活.

记录平凡世界的点滴

-于2010年12月31日

联系我

  • 微信:fishren
  • 邮箱:
    tanlixiao@163.com
  • Address:
    中国最南端的滨海城市
    河西区 解放路 502