Dubbo学习笔记0:RPC框架Dubbo介绍
整体来说,一个公司业务系统的演进流程基本都是从单体应用到多应用.在单体应用时,不同业务模块相互调用直接在本地JVM进程内就可以完成,而变为多个应用时,相互之间进行通信就不能简单的进行本地调用了,因为不同业务模块部署到了不同的JVM进程里面,更常见的是部署到了不同的机器,这时候一个高效/稳定的RPC远程调用框架就变得非常重要.
Dubbo是阿里巴巴开发的一个开源的高性能的远程服务调用框架,致力于提供高性能和透明化的RPC远程调用服务解决方案.作为阿里巴巴SOA服务化治理方案的核心框架,目前它已进入Apache卵化器项目,其前景可谓无限光明.
工欲善其事必先利其器,要想研究Dubbo的原理实现,首先需要使用Dubbo搭建出一个分布式系统.研究计划主要分为以下四个部分展开:
1.在目前主流的三种不同环境下使用Dubbo搭建系统,主要包括使用Spring配置方式和Dubbo API方式搭建,及基于SpringBoot和dubbo-spring-boot-starter使用注解方式搭建服务提供者和消费者.这个系统虽然简单,但包含了服务提供者/服务消费者/服务注册中心(使用Zookeeper)/管理控制台(Dubbo-Admin)/监控平台(Dubbo-Monitor).
2.什么是服务消费端泛化调用和异步调用,如何使用服务端泛化调用和异步调用.
3.从整体分析Dubbo的系统架构,并讲解JDK标准SPI的实现原理及Dubbo如何实现增强SPI,如何实现扩展实现类进行功能的增强.Dubbo提供了哪些集群容错方式,并学习Failover集群容错的实现原理.
然后了解Dubbo提供了哪些负载均衡策略,并讲解一致性Hash负载均衡策略原理,Dubbo提供了哪些线程模型,如何进行自定义配置等等.最后讲解服务提供者如何启动并发布服务到注测中心的,服务消费方又是如何从服务注册中心获取服务地址列表,并发起远程调用的.
4.在Dubbo过程中需要注意的事项.
Dubbo学习笔记0:RPC框架Dubbo介绍的更多相关文章
- Dubbo学习笔记11:使用Dubbo中需要注意的一些事情
指定方法异步调用 前面我们讲解了通过设置ReferenceConfig的setAsync()方法来让整个接口里的所有方法变为异步调用,那么如何指定某些方法为异步调用呢?下面讲解下如何正确地设置默写方法 ...
- RPC 框架 Dubbo 从理解到使用(一)
技术架构演变 单一应用架构 通俗地讲,"单体应用(monolith application)"就是将应用程序的所有功能都打包成一个独立的单元.当网站流量很小时,只需一个应用,将所有 ...
- RPC 框架 Dubbo 从理解到使用(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:RPC 框架 Dubbo 从理解到使用(一) 本篇文章讲解 Dubbo 支持的注册中心.Dubbo 负载均衡策略和 Dubbo 控制台的安装. 注册中心 ...
- 阿里 RPC 框架 DUBBO 初体验
最近研究了一下阿里开源的分布式RPC框架dubbo,楼主写了一个 demo,体验了一下dubbo的功能. 快速开始 实际上,dubbo的官方文档已经提供了如何使用这个RPC框架example代码,基于 ...
- 使用Dubbo、JSF等RPC框架时,对于异常的处理
无论是Dubbo还是JSF等RPC框架,一般都会把接口分为2部分: 1,服务端(provider) 2,客户端(consumer) 由于,客户端与服务端可能不在同一个应用中,所以客户端一般在调用服务端 ...
- ArcGIS API for JavaScript 4.2学习笔记[0] AJS4.2概述、新特性、未来产品线计划与AJS笔记目录
放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 4.2全线基础学习请点击[直达] 4.3及更高版本的补充学习请关注我的博客. ArcGIS API for JavaScr ...
- 并发编程学习笔记(15)----Executor框架的使用
Executor执行已提交的 Runnable 任务的对象.此接口提供一种将任务提交与每个任务将如何运行的机制(包括线程使用的细节.调度等)分离开来的方法.通常使用 Executor 而不是显式地创建 ...
- go语言,golang学习笔记2 web框架选择
go语言,golang学习笔记2 web框架选择 用什么go web框架比较好呢?能不能推荐个中文资料多的web框架呢? beego框架用的人最多,中文资料最多 首页 - beego: 简约 & ...
- mybatis学习笔记之基础框架(2)
mybatis学习笔记之基础框架(2) mybatis是一个持久层的框架,是apache下的顶级项目. mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足s ...
随机推荐
- C++自学及C的补缺
我这个寒假可以坐在电脑前的时间算是比较少的,因为我放假不久后就去打工了,而打工的时间是很流动的,所以我无法固定时间来学习,因此我只能根据我的打工时间来安排我的学习. 由于我的书是除夕前夕淘宝的,近期是 ...
- mvc拦截请求IHttpModule
代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syste ...
- IO流的各种继承关系
- JAVA 对象序列化——Serializable
1.序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保存object st ...
- Beta阶段DAY2
一.提供当天站立式会议照片一张 二.每个人的工作 1.讨论项目每个成员的昨天进展 刘阳航:删除多余按钮,调整界面. 林庭亦:删除麻烦的颜色设置. 郑子熙:添加新增按钮. 陈文俊:重新规划面板及功能. ...
- [转帖]DAS、SAN、NAS
http://blog.itpub.net/26736162/viewspace-2214368/ DAS(Direct-attached Storage) 直连存储 直连式存储与服务器主机之间的连接 ...
- Iaas
IaaS(Infrastructure as a Service),即基础设施即服务. 消费者通过Internet 可以从完善的计算机基础设施获得服务.这类服务称为基础设施即服务.基于 Interne ...
- Java的StringBuIlder扩容机制
JDK 1.6中,扩容的源码是这样: void expandCapacity(int minimumCapacity) { int newCapacity = (value.length + 1) * ...
- Qt——常用控件样式
下面是我设计.调整.修改的Qt控件样式,仅供参考. Github地址:https://github.com/ikongziming/QtDemo/tree/master/StyleSheetDemo ...
- D-query SPOJ - DQUERY(模板莫队)
题意: 给定一个序列,询问m次,每次求出区间 [ L,R ] 有多少个不同数字. 套模板就好了...但我不大明白....我的写法为什么不行...唉... #include <iostream&g ...