0


Dubbo快速入门

Dubbo

一、基础知识

1.1 分布式系统定义

随着业务量的增大,我们不可能把所有的功能都放在一台服务器上,所以我们用很多台服务器每个服务器上都放一点服务,把业务分散在多台主机上。分布在多个主机上也不行啊,怎么处理它们之间的关系呢?

没错,这个管理者就是我们今天的主角------》Dubbo

image-20220311091829712

1.2 应用架构的演变

image-20220311092606952

1.2.1 单一应用架构

image-20220311092550310

1.2.2 垂直应用架构

image-20220311093233072

1.2.3 分布式应用架构

RPC:分布式服务框架

主要解决不同服务器之间的远程调用问题

image-20220311093815885

1.2.4 流动计算架构

分布式架构还存在问题就是资源调度问题,某个服务器请求突然多了,某个服务器很少请求。那么如何协调它们的资源呢,让闲着的帮忙的干点事

之后呢,出现了流动计算机架构。引入了调度中心能解决资源调度问题

image-20220311093940746

1.3 RPC

1.3.1 什么是RPC?

将java对象转化为字节流的过程就叫序列化

将字节流转化为java对象的过程就叫反序列化

当java对象需要在网络上进行传输或者持久化存储到文件中,就需要对java对象进行序列化

对于一个RPC框架好坏的评判就是建立起网络连接的速度快不快,序列化与反序列化的速度快不快

简而言之RPC的核心模块就是:通讯,序列化

RPC(Remote Producedure Call)是指远程过程调用,是一种进程间的通信方式,它是一种技术思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。

image-20220311095443427

1.3.2 实例

客户端A想调用客户端b的方法,那么要经过如下过程

image-20220311100620495

1.4 dubbo简介

面向接口代理:

类似与mybatis一样,直接调用接口中的方法。不关注内部实现细节

负载均衡:

根据服务器的状态,将流量负载到多台服务器上减轻服务器压力

服务自动注册与发现:

将服务器都注册到注册中心中,服务上下线都会实时感知。有了注册中心服务调度之间就会很方便,要调用什么服务就去注册中心中去查找。

可以想象我们现实生活中的婚介公司,里面有很多人注册了信息,你想找什么样的去打电话,吃饭看电影…这样有了婚介公司就对我们找对象很方便了不是~

同理注册中心也是一样,有了注册中心服务之间的关系就会变得很清晰,很容易找到之间的关系

高度可扩展能力:

内核是计算机上配置的底层软件,是OS最基本、最核心的部分

微内核:只包含基础功能的内核部分(必不可少),时钟管理、中断处理、原语

Dubbot遵循微内核+插件的方式,有很强的扩展能力

image-20220311102425482

运行期流行调度

灰度发布:就是将新功能先上线部分服务器,这一部分服务器用着没问题了,在发布到其余服务器上

可视化的服务治理与运维

就是一个可视化的监控平台嘛

1.5 Dubbot设计架构

长连接:指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发送链路检测包

短连接:短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。

image-20220311121927522

  • 服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
  • 服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  • 注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
  • 监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

1.5.1 调用关系说明

  1. 服务容器负责启动,加载,运行服务提供者
  2. 服务提供者在启动时,向注册中心注册自己所提供的服务
  3. 服务消费者在启动时,向注册中心订阅自己所需的服务
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送更新给消费者
  5. 服务消费者,从提供地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用
  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

1.6 Zookeeper注册中心

下载安装包,解压安装即可

image-20220311121201229

我们这里只把zk当做注册中心来用,详细的教程后面会出

1.7 管理控制台

开启zookeeper服务

部署在windows服务器上,运行jar包即可

dubbo本身并不是一个服务软件。它其实就是一个jar包能够帮你的java程序连接到zookeeper,并利用zookeeper消费、提供服务。所以你不用在Linux上启动什么dubbo服务。

java -jar 包名

账号密码都是root

image-20220311124016060

标签: rpc java 分布式

本文转载自: https://blog.csdn.net/qq_45714272/article/details/123430169
版权归原作者 小蜗牛耶 所有, 如有侵权,请联系我们删除。

“Dubbo快速入门”的评论:

还没有评论