Dubbo介绍前篇------单一应用框架、垂直应用框架、分布式应用框架、流动计算框架,及RPC的简介

Dubbo是高性能、轻量级、基于JAVA的RPC框架,Dubbo提供三个关键功能,包括基于接口的远程调用,容错和负载平衡,以及自动服务注册和发现。 ———摘自官网
想要了解什么是Dubbo,首先要了解RPC的由来,及RPC是什么?

一:四大框架
1.单一应用框架
当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本。
此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。
随着应用功能的增多,代码量越来越大,越来越难维护,那怎么解决代码一体化的问题?

2.垂直应用框架
现状:随着我们的系统业务增多、访问量增大时,我们会发现一台单机运行此系统已经无法应付压力。此时,我们可以将系统业务拆分成几个互不关联的系统,分别部署在各自机器上,以划清逻辑并减小压力。——————–垂直应用
垂直应用架构解决了单一应用架构所面临的扩容问题,流量能够分散到各个子系统当中,且系统的体积可控,一定程度上 降低了开发人员之间协同以及维护的成本,提升了开发效率。
总结:当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。
此时,用于加速前端页面开发的 Web框架(MVC) 是关键。
缺点:但是在垂直架构中相同逻辑代码需要不断的复制,不能复用。每个垂直模块都相当于一个独立的系统;

3.分布式应用架构(RPC)
现状:当我们的业务越来越多、应用系统也越来越多时,自然的,我们会发现有些功能已经不能简单划分开来或者划分不出来。此时,可以将公共业务逻辑抽离出来,将之组成独立的服务Service应用 。而原有的、新增的应用都可以与那些独立的Service应用交互,以此来完成完整的业务功能。
总结:当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。
此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。

4.流动计算架构
随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架
这块内容我只了解了一下,以后用到再补充

二:RPC简介
1、什么是RPC
RPC(Remote Procedure Call)远程过程调用。见名知意 - 从远程主机调用一个过程/函数。
两台服务器A、B,分别部署不同的应用a,b。当A服务器想要调用B服务器上应用b提供的函数或方法的时候,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义传达调用的数据。
大白话:你在你的机器上写了一个程序,我这边是无法直接调用的,这个时候就出现了一个远程服务调用的概念。
RPC的目标:使得本程序调用其它远程主机上的函数,好像调用本程序内的函数一样简单,并且屏蔽编程语言的差异性。
要实现上述目标首先需要设计一种通讯协议,被称之为RPC协议(Protocol):
RPC协议不是某一个具体的协议,而是一个类型名,代表一类叫做RPC的协议。
RPC协议是在TCP/UDP之上的应用层协议,广义上可以跨越平台、语言进行应用间通讯(说广义是因为可以开发一个协议但只支持单个语言)。
2、有哪些RPC?
有很多RPC框架:CORBAR、Thrift、Dubbo等等。基本上他们分为两种类别:
跨语言的,
单一语言的,比如Dubbo
如果你的分布式应用架构主体都是Java应用,显然我们不应该使用跨语言的RPC来多一层中转浪费效率。

======================主要参考https://blog.csdn.net/kingcat666/article/details/78577079=========

你可能感兴趣的:(RPC,Dubbo)