论面向服务的架构设计及其应用 论文_系统架构

什么是SOA

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

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

论面向服务的架构设计及其应用 论文_大数据_02

必然性:编程技术的发展

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

也可以看成是一个越来越抽象化的发展

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_03

论面向服务的架构设计及其应用 论文_SOA_04

 

论面向服务的架构设计及其应用 论文_java_05

论面向服务的架构设计及其应用 论文_大数据_06

功能浪费:多个系统中,各个系统有不少部分是相同或者类似的;SOA可以通过共用服务,减少这部分的开发

效率低下:因为重复做轮子,所以效率低下

架构复杂:因为各个系统架构都不同,增加复杂度

集成困难:不同系统是独立的,要集成的时候很困难

论面向服务的架构设计及其应用 论文_系统架构_07

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

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

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

服务治理:很多服务开发出来,如何管理这些服务

论面向服务的架构设计及其应用 论文_java_08

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

论面向服务的架构设计及其应用 论文_SOA_09

论面向服务的架构设计及其应用 论文_系统架构_10

有大家都认可的契约,才能共同合作

论面向服务的架构设计及其应用 论文_大数据_11

论面向服务的架构设计及其应用 论文_java_12

服务自己管理自己,不应该和其他功能耦合

自己能控制自己的运行环境

论面向服务的架构设计及其应用 论文_大数据_13

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_14

论面向服务的架构设计及其应用 论文_SOA_15

论面向服务的架构设计及其应用 论文_java_16

论面向服务的架构设计及其应用 论文_SOA_17

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_18

 

 

 

 

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

论面向服务的架构设计及其应用 论文_java_19

3、Thrift,一个RPC组件

 

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_20

4、Dubbo

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

DubboRPC框架

出现背景:

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_21

RPC,是客户端可以动态请求不同服务器的服务

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

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

简介和基础实例:

 

论面向服务的架构设计及其应用 论文_SOA_22

论面向服务的架构设计及其应用 论文_大数据_23

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

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_24

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

论面向服务的架构设计及其应用 论文_大数据_25

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_26

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

然后在消费者和提供者中通过xml配置即可配置好这个关系。

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_27

 Dubbo提供了3种协议

 

论面向服务的架构设计及其应用 论文_大数据_28

论面向服务的架构设计及其应用 论文_SOA_29

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

论面向服务的架构设计及其应用 论文_系统架构_30

Dubbo提供4种序列化方式

论面向服务的架构设计及其应用 论文_SOA_31

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

论面向服务的架构设计及其应用 论文_SOA_32

Dubbo支持3种容器

论面向服务的架构设计及其应用 论文_SOA_33

 

 

Dubbo基本功能上

论面向服务的架构设计及其应用 论文_系统架构_34

论面向服务的架构设计及其应用 论文_大数据_35

论面向服务的架构设计及其应用 论文_java_36

通过XML即可构建Dubbo架构,

论面向服务的架构设计及其应用 论文_java_37

 

论面向服务的架构设计及其应用 论文_大数据_38

论面向服务的架构设计及其应用 论文_java_39

论面向服务的架构设计及其应用 论文_java_40

一般建议通过XML集中管理

 

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_41

一般在设计上避免这种情况,例如分开2个接口

 

论面向服务的架构设计及其应用 论文_java_42

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_43

 

论面向服务的架构设计及其应用 论文_系统架构_44

论面向服务的架构设计及其应用 论文_系统架构_45

论面向服务的架构设计及其应用 论文_SOA_46

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

论面向服务的架构设计及其应用 论文_SOA_47

论面向服务的架构设计及其应用 论文_SOA_48

论面向服务的架构设计及其应用 论文_系统架构_49

论面向服务的架构设计及其应用 论文_大数据_50

论面向服务的架构设计及其应用 论文_系统架构_51

 

 

论面向服务的架构设计及其应用 论文_系统架构_52

论面向服务的架构设计及其应用 论文_java_53

 

 

 dubbo基本功能下

论面向服务的架构设计及其应用 论文_系统架构_54

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_55

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

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_56

 

论面向服务的架构设计及其应用 论文_java_57

论面向服务的架构设计及其应用 论文_系统架构_58

论面向服务的架构设计及其应用 论文_大数据_59

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

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

3、负载均衡,优先级

论面向服务的架构设计及其应用 论文_java_60

有3种缓存策略,可以选用

 

论面向服务的架构设计及其应用 论文_java_61

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

客户端消费:

论面向服务的架构设计及其应用 论文_大数据_62

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_63

论面向服务的架构设计及其应用 论文_SOA_64

论面向服务的架构设计及其应用 论文_大数据_65

一般不会通过API来做

 

 

服务治理:

论面向服务的架构设计及其应用 论文_大数据_66

论面向服务的架构设计及其应用 论文_系统架构_67

论面向服务的架构设计及其应用 论文_SOA_68

论面向服务的架构设计及其应用 论文_系统架构_69

论面向服务的架构设计及其应用 论文_大数据_70

论面向服务的架构设计及其应用 论文_系统架构_71

 

 

Dubbo基本原理

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_72

论面向服务的架构设计及其应用 论文_大数据_73

其它暂略

 

 

架构设计原则(上)

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

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_74

论面向服务的架构设计及其应用 论文_系统架构_75

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

论面向服务的架构设计及其应用 论文_大数据_76

分包中最重要的2块

内聚:

论面向服务的架构设计及其应用 论文_java_77

论面向服务的架构设计及其应用 论文_系统架构_78

论面向服务的架构设计及其应用 论文_java_79

论面向服务的架构设计及其应用 论文_java_80

论面向服务的架构设计及其应用 论文_大数据_81

论面向服务的架构设计及其应用 论文_大数据_82

论面向服务的架构设计及其应用 论文_大数据_83

论面向服务的架构设计及其应用 论文_系统架构_84

论面向服务的架构设计及其应用 论文_大数据_85

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

论面向服务的架构设计及其应用 论文_java_86

论面向服务的架构设计及其应用 论文_SOA_87

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_88

论面向服务的架构设计及其应用 论文_java_89

论面向服务的架构设计及其应用 论文_大数据_90

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_91

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

论面向服务的架构设计及其应用 论文_系统架构_92

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

论面向服务的架构设计及其应用 论文_大数据_93

论面向服务的架构设计及其应用 论文_SOA_94

 

 架构设计原则(下)

论面向服务的架构设计及其应用 论文_SOA_95

论面向服务的架构设计及其应用 论文_大数据_96

论面向服务的架构设计及其应用 论文_大数据_97

论面向服务的架构设计及其应用 论文_大数据_98

论面向服务的架构设计及其应用 论文_SOA_99

论面向服务的架构设计及其应用 论文_java_100

论面向服务的架构设计及其应用 论文_系统架构_101

论面向服务的架构设计及其应用 论文_java_102

论面向服务的架构设计及其应用 论文_系统架构_103

论面向服务的架构设计及其应用 论文_系统架构_104

论面向服务的架构设计及其应用 论文_java_105

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_106

论面向服务的架构设计及其应用 论文_SOA_107

论面向服务的架构设计及其应用 论文_系统架构_108

论面向服务的架构设计及其应用 论文_SOA_109

论面向服务的架构设计及其应用 论文_java_110

论面向服务的架构设计及其应用 论文_SOA_111

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_112

论面向服务的架构设计及其应用 论文_系统架构_113

论面向服务的架构设计及其应用 论文_论面向服务的架构设计及其应用 论文_114

论面向服务的架构设计及其应用 论文_大数据_115

略:

  • 22、 Zookeeper简介
  • 26'30" 23、 Zookeeper应用
  • 35'50" 24、 服务器推送技术
  • 34'38" 25、 面向服务体系架构总结