深入理解dubbo-原理概述

2020-08-05  本文已影响0人  Martain

Dubbo官网

什么是分布式系统

《分布式系统原理与范型》定义:分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统
分布式系统(distributed system)是建立在网络之上的软件系统。

发展演变

随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。

dubbo发展演变

RPC(Remote Procedure Call)

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

RPC原理图 rpc调用时序图

RPC 比较核心的模块就是:网络通讯和序列化

架构设计

image-20200805135131063
节点 角色说明
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心
Container 服务运行容器

更多详情可参考 官方介绍

框架设计

dubbo框架设计

Dubbo的框架设计分为三个大块:RemotingRPCBusiness;其中,细分又为如下模块:

Netty模块

Dubbo底层的网络传输模块使用的是基于Netty的非阻塞式的网络框架,Netty是一个异步事件驱动的网络应用程序框架, 用于快速开发可维护的高性能协议服务器和客户端。它极大地简化并简化了TCP和UDP套接字服务器等网络编程。

Netty原理

netty 流程图

netty有两个线程,一个是boss线程,一个是worker线程。在 Netty 的核心组件中,Channel 提供 Socket 的连接通道,EventLoop 会对应 Channel 监听其产生的事件,并且通知执行者。EventloopGroup 的容器,负责生成和管理 EventLoop。具体可参考 官方文档

上一篇下一篇

猜你喜欢

热点阅读