一、SOA
1、官网解释
面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,
并通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独
立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种
统一和通用的方式进行交互。
2、SOA定位
如何设计项目,让开发时更有效率
SOA是一种思想
面向服务架构:(1)、有一个专门提供服务的单元
(2)、其他所有单元都调用这个服务
3、项目架构设计
3.1、老旧架构设计
存在的问题:1.公司项目不允许所有项目都访问数据库
2.开发时数据访问层代码可能出现冗余的问题
3.2、使用SOA架构
3.2.1、专门访问数据库的(项目)服务
3.2.2、SOA框架设计
SOA架构好处:开发时可以实现,数据访问控制以及代码的复用
4、实现SOA架构时,常用的几种服务
4.1、Dubbo 服务
4.2、WebService 服务
4.3、Dubbox 服务
4.4、服务方(Web项目,直接调用web项目的控制器)
4.4.1、使用HttpClient可以调用其他项目的控制器
二、RPC
1、官网解释
RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
有多种 RPC模式和执行。最初由 Sun 公司提出。IETF ONC 宪章重新修订了 Sun 版本,使得 ONC RPC 协议成为 IETF 标准协议。现在使用最普遍的模式和执行是开放式软件基础的分布式计算环境(DCE)。
2、RPC解释
远程客户端(A)通过互联网调用远程服务器(B),不知道远程服务器(B)具体实现,只知道远程服务器(B)提供了什么功能。
3、RPC优点
3.1、数据安全性
三、Dubbo简介
1、官网解释
Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 [1] Spring框架无缝集成。
Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
2、优点:分布式、高性能、透明化的RPC服务框架
3、作用:提供服务自动注册、自动发现等高效服务治理方案
4、Dubbo架构图
4.1、运行原理(对调用关系解释)
4.1.0、启动容器,相当于在启动Dubbo的Provider
4.1.1、启动后悔去注册中心Registry进行注册,注册所有可以提供服务的服务列表
4.1.2、在Consumer启动后会去Registry中获取服务列表和Provider的地址,进行订阅。
4.1.3、档Provider有修改后,注册中心会把消息吐送给Consummer(观察者设计模式(发布/订阅模式))
4.1.4、根据获取到的Provider地址,真实地调用Provider中的功能
在Consummer方使用了代理设计模式,创建一个Provider方类的一个代理对象,通过代理对象来获取Provider中真实地 功能,起到保护Provider真实功能的作用
4.1.5、Monitor监听器,Consummer和Provider每隔一分钟会向Monitor发送统计信息,包含访问次数、频率
4.1.6、虚线都是异步,实线都是同步访问
4.1.7、蓝色虚线:在启动时完成的功能
红色虚线(实线)都是程序运行过程中执行的功能
4.1.8、所有的角色都是可以在单独的服务器上,所以必须遵守特定的协议。