dubbo基础概念总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tgbyn/article/details/82902600
 **前言**

小编最近刚接触dubbo,总结一下基础知识,以备之后回顾。

 **内容**

一、dubbo的概念

Dubbo是2011年阿里巴巴公司开源的一个高性能优秀的分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。

RPC :(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。(当A机器上的程序通过网络调用B机器上的程序时,A进程会被挂起,而B机器会接着执行,B机器在返回后会把运算结果的数据传给A 机器的进程,A 机器获得调用结果后在接着执行,这种机制就叫做RPC【远程过程调用】)。
在这里插入图片描述

SOA :(Service-Oriented Architecture)面向服务编程,是一种思想,一种方法论,一种分布式的服务架构。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。

用途:SOA解决多服务凌乱问题,SOA架构解决数据服务的复杂程度,同时SOA又有一个名字,叫做服务治理。

例如:
在这里插入图片描述
通过上面的图我们可以看出,多个子系统直接相互交互,相互调用非常凌乱,这样我们就很不爽,所以我们就用到了我们的SOA架构,SOA又叫服务治理,SOA就是帮助我们把服务之间调用的乱七八糟的关系给治理起来,然后提供一个统一的标准,把我们的服务治理成下图所示,以前我们的服务是互相交互,现在是只对数据总线进行交互,这样系统就变得统一起来。

在这里插入图片描述

新的交互方式:各个系统分别根据统一标准向数据总线进行注册,各子系统调用其他子系统时,我们并不关心如果找到其他子系统,我们只招数据总线,数据总线再根据统一标准找其他子系统,所以数据总线在这里充当一个只路人的作用。

二、dubbo框架

在这里插入图片描述

Provider:暴露服务的服务提供者
Consumer:调用远程服务的服务消费者
Registry:服务注册与发现的注册中心
Monitor:统计服务的调用次数和嗲用时间的监控中心。
container:服务运行容器(例如:spring容器)

三、dubbo的服务治理

在这里插入图片描述

在大规模服务化之前,应用可能只是通过 RMI 或 Hessian 等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过 F5 等硬件进行负载均衡。

但是随着服务越来越多,服务URL配置管理变得非常困难,F5 硬件负载均衡器的单点压力也越来越大。 此时需要一个服务注册中心,动态的注册和发现服务,使服务的位置透明。并通过在消费方获取服务提供方地址列表,实现软负载均衡和 Failover,降低对 F5 硬件负载均衡器的依赖,也能减少部分成本。

当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。 这时,需要自动画出应用间的依赖关系图,以帮助架构师理清理关系。

接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器? 为了解决这些问题,第一步,要将服务现在每天的调用量,响应时间,都统计出来,作为容量规划的参考指标。其次,要可以动态调整权重,在线上,将某台机器的权重一直加大,并在加大的过程中记录响应时间的变化,直到响应时间到达阈值,记录此时的访问量,再以此访问量乘以机器数反推总容量。

duboo官方文档:http://dubbo.apache.org/zh-cn/docs/user/preface/requirements.html

猜你喜欢

转载自blog.csdn.net/tgbyn/article/details/82902600