文档章节

Dubbo学习笔记之Dubbo简介

smileNicky
 smileNicky
发布于 2018/12/02 22:31
字数 1001
阅读 1
收藏 0

[TOC]

一、分布式基本知识

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)

© 著作权归作者所有

smileNicky
粉丝 11
博文 19
码字总数 24361
作品 2
西城
程序员
私信 提问
dubbo学习笔记 第三章简介dubbo的工作原理

一、工作原理图 这是dubbo官网的关于dubbo工作原理,其中最核心的应该是Registry注册中心,Monitor,Consumer消费者和Provider服务提供者四个部分,注册中心关系这消费者和提供者的在zookeep...

sesamefox
2017/10/26
137
0
spring boot整合dubbo

github: https://github.com/Athlizo/spring-dubbo-parent 码云: https://git.oschina.net/null5843382/spring-dubbo-parent 相关文档: Spring Dubbo 开发笔记(一)——概述: Spring Dub......

lizo
2017/03/01
1K
6
dubbo源码学习笔记----整体结构

dubbo核心包 config dubbo-config-api dubbo-config-spring remoting dubbo-remoting-netty dubbo-remoting-netty4 dubbo-remoting-mina dubbo-remoting-grizzly dubbo-remoting-p2p dubbo-......

春哥大魔王的博客
2018/01/13
246
2
跟我学习dubbo-简介(1)

1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要...

HI曲奇饼干
2016/01/04
388
4
dubbo学习笔记 第九章dubbo服务调用的安全控制

如果有看我这些笔记的人可能会觉得我应该讲讲dubbo-admin项目对提供者和消费者的服务调用控制了,但我觉得dubbo-admin这个东西部署起来很简单,不过里面确实也有一些bug,后面有时间给大家讲...

sesamefox
2017/11/03
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot + Mybatis + Ehcache 二级缓存实例

二级缓存是多个SqlSession共享的,其作用域是mapper的同一个namespace,不同的sqlSession两次执行相同namespace下的sql语句且向sql中传递参数也相同即最终执行相同的sql语句,第一次执行完毕...

xiaolyuh
3分钟前
1
0
Spring源码学习(二)哎呦,按菜谱做菜与AbstractAutowireCapableBeanFactory.createBean流程差不多

记得跟老婆谈恋爱时,有一天心血来潮给老婆做饭,按照菜谱一步一步的做,结果差点把厨房烧了!!! 这事至今老婆还记得。 入口 上一篇说了,AbstractBeanFactory.getBean的主流程 ,今天来说下...

温安适
5分钟前
12
0
前端UI攻城狮 你们该抛弃jQuery了

你不再需要jQuery! Web工程师太依赖jQuery了,某种意义上说jQuery已经成了JavaScript的同义词。但是我们真的需要他么?或许我们应该反思一下什么时候才真的需要jQuery。 对我个人而言开始使...

前端老手
6分钟前
1
0
六、Java设计模式之工厂方法

工厂方法定义: 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行 类型:创建型 工厂方法-使用场景: 创建对象需要大量重复的代码 ...

东风破2019
48分钟前
5
0
win服务器管理遇到的一系列问题记录

有些小伙伴在使用iis7远程桌面管理工具的时候总是会遇到一系列的问题,下面就是为大家介绍一下服务器日常管理过程中出现的问题及我的解决办法和心得。希望能帮到大家。   拒绝服务器重新启...

1717197346
55分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部