Dubbo系列之Dubbo原理简介
文章目录
- 一、分布式基本知识
- 1.1) 架构演变
- 1.2)、分布式基本概念
- 二、RPC简介
- 2.1) RPC概念
- 2.2) RPC核心模块
- 三、Dubbo原理简介
- 3.1) Dubbo简介
- 3.2) 核心功能
- 3.3) 原理简介
- 参考资料
一、分布式基本知识
1.1) 架构演变
先给出dubbo官方的图,图片表示了架构的演变。然后我说一下自己的理解。
应用最开始是单体应用,即一个应用包括了所有应用模块。
随后就是垂直应用架构,也就是将系统拆分为多个应用模块。
随后就是RPC架构,之前的垂直应用架构其实可以说是在一个进程内的通讯,而RPC就是一种进步,RPC是进程之间的通讯,远程过程调用就是这么来的。
有了RPC之后,虽然可以实现进程之间的通讯,但是服务器集群后的服务器资源利用有些时候容易造成浪费,比如有个系统,一般情况都是不能很好地预估需要分配多少机器的,很容易造成一种情况就是业务访问很频繁的模块分配了不足的机器,而访问不是很频繁的模块分配了太多的机器,这种情况就不能实现资源的很好利用,所以针对这种情况就有了SOA(Service Oriented Architecture)的出现,SOA其实就是一个服务注册中心,可以实现资源调度,合理地分配资源,提高资源调度,是一个治理中心。
1.2)、分布式基本概念
所以我们了解了架构演变之后,就可以更好的理解分布式,分布式其实就是一种可以实现不同进程之间通讯的架构,然后进程之间怎么通讯的?一般都是通过RPC框架实现。比如Java方面的,Dubbo框架或者Spring Cloud。
二、RPC简介
2.1) RPC概念
RPC:全称远程过程调用,是一种进程间的通信的方式,它所做的事情就是实现进程内的通信,允许调用另外一个地址空间,可以是共享网络里的另外一台机器。
2.2) RPC核心模块
RPC有两个核心模块:通信和序列化
三、Dubbo原理简介
3.1) Dubbo简介
Dubbo是阿里巴巴开源的一款Java RPC框架,现在已经捐赠给Apache
官网:http://dubbo.apache.org/
3.2) 核心功能
a、智能容错和负载均衡
b、服务注册和发现
c、面向接口的远程方法调用
3.3) 原理简介
上图是Dubbo官方的图
角色
Provider:暴露服务的服务提供者
Container:服务运行的容器
Consumer:调用远程服务的消费者
Registry:服务注册和发现的注册中心
Minitor:统计服务调用次数和时间的监控中心
调用
下面根据我的理解说明一下
0:服务器容器负责启动、加载、运行服务提供者
1:服务提供者在启动后就可以向注册中心暴露服务
2:服务消费者在启动后就可以向注册中心订阅想要的服务
3:注册中心向服务消费者返回服务调用列表
4:服务消费者基于软负载均衡算法调用服务提供者的服务,这个服务提供者有可能是一个服务提供者列表,调用那个服务提供者就是根据负载均衡来调用了
5:服务提供者和服务消费者定时将保存在内存中的服务调用次数和服务调用时间推送给监控中心
参考资料
SpringBoot+Dubbo
零基础搭建一套微服务框架(Spring Boot + Dubbo + Docker + Jenkins)
Dubbo系列之Dubbo原理简介相关推荐
- 【dubbo系列】dubbo协议与http协议对比
前言 什么是协议?协议可以认为是一种语言,是一种交互的标准.比如A和B互相发手机短信.A和B必须互相知道对方手机号(IP地址),知道手机号后,全部使用汉语(协议)即可互相通信. http即超文 ...
- GANs系列:DCGAN原理简介与基础GAN的区别对比
本文长期不定时更新最新知识,防止迷路记得收藏哦! 还未了解基础GAN的,可以先看下面两篇文章: GNA笔记--GAN生成式对抗网络原理以及数学表达式解剖 入门GAN实战---生成MNIST手写数据集 ...
- Dubbo——远程(RPC)调用原理
摘要 服务暴露和服务引入两个流程了,而这两个流程就是为了服务的调用,本博文将详细的介绍Dubbo的服务调用流程. PRC架构组件 一个基本的RPC架构里面应该至少包含以下4个组件: 客户端(Clien ...
- Apache Dubbo系列:泛化调用
上一章,我们讲到了Dubbo的线程池策略,本章我们一起探讨,Dubbo如何实现泛化调用的.主要内容包括: 1.什么是泛化调用 2.泛化调用的三种方式 3.如何使用 4.源码分析 推荐阅读: Apach ...
- php dubbo 接口测试工具,dubbo服务自动化测试搭建
java实现dubbo的消费者服务编写:ruby实现消费者服务的接口测试:通过消费者间接测试dubbo服务接口的逻辑 内容包括:dubbo服务本地调用环境搭建,dubbo服务启动,消费者部署,脚本编写 ...
- Dubbo系列之微服务框架整合教程
文章目录 一.分布式基本知识 1.1) 架构演变 1.2).分布式基本概念 二.RPC简介 2.1) RPC概念 2.2) RPC核心模块 三.Dubbo原理简介 3.1) Dubbo简介 3.2) ...
- Dubbo系列(一)dubbo介绍和入门
Dubbo系列(一)dubbo介绍和入门 学习Dubbo 之前,先了解一下这几个问题: Dubbo是什么? 互联网发展的背景 Dubbo介绍 Dubbo的优势在哪里? 了解了dubbo之后,让我们从零 ...
- 源码分析Dubbo系列文章
本系列文章主要针对Dubbo2.6.2(dubbox2.8.4)版本,从源码的角度分析Dubbo内部的实现细节,加深对Dubbo的各配置参数底层实现原理的理解,更好的指导Dubbo实践,其目录如 ...
- Dubbo系列之服务注册与发现
文章目录 一.分布式基本理论 1.1.分布式基本定义 1.2 架构发展演变 1.3.RPC简介 二.Dubbo理论简介 三.Dubbo环境搭建 3.1 Zookeeper搭建 3.2 Dubbo管理页 ...
最新文章
- CVPR2020论文点评: AdderNet(加法网络)
- break 与continue 语句
- Android_activity的生命周期
- 鸿蒙系统 安卓游戏,华为鸿蒙系统运行安卓游戏出现新状况!安卓换皮论被彻底打脸?...
- java中ofd文件转pdf_java ofd文件解析
- 如何在表格中批量查询号码归属地?
- CFA Notes第一遍完成
- 中文拼音排序(web前端实现)
- 树莓派和电脑之间串口通信
- Chrome 中的自动播放策略如何设置自动播放
- C#编写第一个Windows桌面应用
- python xmxl 无法启动_auto-pypi-一个Python命令行工具,用于自动设置包并将其上载到PyPi。-Sen LEI Use As A Command Line Tool...
- 如何在iphone/ipad/itouch上设置新浪VIP邮箱
- 232电平和TTL电平
- 真实案例分享:MOS管电源开关电路,遇到上电冲击电流超标
- PHP重定向SEO,PHP类网站301重定向实战站长SEO必修课
- 第一章、Ansible的详细介绍与安装
- 广告系统架构:要啥自行车!
- 区块链+供应链:共建全国统一大市场
- 应用性能监控对DMS系统综合分析案例