【面向服务体系架构】

 

 

 

 

 

什么是SOA编程

SOA:面向服务架构(Service Oriented Architecture)api

关注点在业务,而不是在对象的变化上
缓存

必然性:编程技术的发展服务器

  • 开始,基于过程式编程,使用大量函数
  • 面向对象编程出现,一切皆为对象
  • 面向组件编程出现,对可重用的对象组合成一个组件
  • 面向服务,

也能够当作是一个愈来愈抽象化的发展架构

 

功能浪费:多个系统中,各个系统有很多部分是相同或者相似的;SOA能够经过共用服务,减小这部分的开发负载均衡

效率低下:由于重复作轮子,因此效率低下框架

架构复杂:由于各个系统架构都不一样,增长复杂度ide

集成困难:不一样系统是独立的,要集成的时候很困难函数

设计复杂:设计的对象不止是一个系统,而是对一对系统的统筹考虑工具

缺少标准:业界缺乏SOA的规范

自上而下设计(全局推进):要领导说话,决定,才能这么作

服务治理:不少服务开发出来,如何管理这些服务

提供了以上这些一些规范和原则

有你们都承认的契约,才能共同合做

服务本身管理本身,不该该和其余功能耦合

本身能控制本身的运行环境

 

 

 

 

二、Protobuf,一个关于数据序列化,数据传输、存储的一个工具,为了在SOA中更高效地处理数据;不完整的RPC组件

三、Thrift,一个RPC组件

 

四、Dubbo

Protobuf和Thrift面向跨语言,对Java支持没有那么好

DubboRPC框架

出现背景:

RPC,是客户端能够动态请求不一样服务器的服务

SOA,是对服务的管理和治理

RPC,上面2个组件能够实现;而为了实现SOA,阿里巴巴开发出了Dubbo

简介和基础实例:

 

实现第三层和第四层开发需求

服务注册器,面向服务提供者,服务消费者

其中有一个包是api,这里是十分稳定的包,须要给消费者和提供者引用。

而后在消费者和提供者中经过xml配置便可配置好这个关系。

 Dubbo提供了3种协议

 

Dubbo使用3种传输方式,推荐Netty

Dubbo提供4种序列化方式

Dubbo提供2种动态代理方式,优先第一种,使用字节码

Dubbo支持3种容器

 

 

Dubbo基本功能上

经过XML便可构建Dubbo架构,

 

通常建议经过XML集中管理

 

通常在设计上避免这种状况,例如分开2个接口

 

 

dubbo提供4种注册中心的实现

 

 

 

 

 dubbo基本功能下

另一种配置方式:在类路径下添加一个dubbo.properties便可

 

一、服务器角度控制,只有10个请求

二、客户端角度控制,支持多少活跃客户端

三、负载均衡,优先级

有3种缓存策略,能够选用

 

直接经过GenericService,加上方法名,参数发送,暴露

客户端消费:

通常不会经过API来作

 

 

服务治理:

 

 

Dubbo基本原理

其它暂略

 

 

架构设计原则(上)

总结上面的工具,如何设计这个框架

 分包:如下是主流的方法论

分包中最重要的2块

内聚:

为了实现支持插件化,Dubbo从上往下发展,都进行了尝试

 微内核,Dubbo使用的架构风格

Dubbo的插件,配置都是使用微内核的SPI来实现

 

 架构设计原则(下)

略:

相关文章
相关标签/搜索