SOA 一些理解

SOA(Service-Oriented Architecture)

这个单词目前是相当的热,现在外面全都是SOA, Web Service, ESB.

 

我说一下自己的一些看法,首先SOA跟web Service有什么关系,好像没有什么直接关系。ESB 好像被认为是 SOA的基础设施,Consumer可以找到Provider,可以做协议转换这些事情,我们可以想想是否真的一定需要协议转换,一定需要ESB来做转发,在量大的话,对性能要求高的情况下,根本就行不通

 

SOA就是一个新名词,本质上来讲,就是一个远程调用

 

SOA不是适合所有的使用场景,不是银弹,比如在一个大型软件公司里面,SOA那些标准,那些乱七八糟的组件,好像就不太适合,相反朴素的RPC Framework倒是真正意义的可以落地。

 

 

RPC Framework

它包括一下几块:

  1. Common 模块 这个是从配置管理角度上看的,你也可以认为它不是一个模块
  2. Remoting 模块,它主要是对socket的封装,也可以是byte的encode和decode
  3. RPC 模块,主要是不同协议的proxy的生产,相关的配置
  4. Registry Server, 顾名思义,注册用的,consumer和provider注册用的
  5. Registry Client, 与Registry交换用的
  6. RPC Framework Monitor

就这些东西了,简单速度快,可以落地

 

BTW: 如果现在设计你自己的rpc framework,请阅读一下Thrift , Avro 代码

 


你可能感兴趣的:(SOA 一些理解)