博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dubbo 源码分析(一)一环境搭建
阅读量:7116 次
发布时间:2019-06-28

本文共 1711 字,大约阅读时间需要 5 分钟。

hot3.png

环境搭建的步骤有哪些

依赖外部的环境

使用的开发工具

源码的拉取

结构大致介绍

依赖的外部环境

安装JDK

安装Git

安装maven

这边我们就不介绍怎么安装这些外部环境了,大家自行从安装这些外部环境哈

2 使用的外部工具

编辑器使用 IntelliJ IDEA (简单好用,快捷键丰富)

GitHub Desktop GitHub的客户端软件,用起来真顺手

3 源码的拉取

源码的话我们上GitHub 上面直接拉取dubbo的源码即可,  然后我们 Fork出一个属于我们自己的仓库,之后我们就可以在我们GitHub的仓库中看到这个项目了。然后我们将这个项目down到本地进行调试

具体Git操作不详细介绍,下面贴出几个比较好的供大家参考

https://blog.csdn.net/qq_32040767/article/details/77096761

https://blog.csdn.net/menggudaoke/article/details/77744541

https://juejin.im/entry/5a5f3b286fb9a01c9064e83b

https://www.cnblogs.com/MrJun/p/3351478.html

这里我们为什么使用Fork 而不是Star,这是因为star的项目你不是Pull Request 到源项目的,而Fork 是可以的。想想一下要是你在看源码的过程中发现了bug。然后提交给他们并审核这是一件多酷的事情

4 Dubbo的大致介绍

下面的这个  官网上最为经典的介绍,一张图就将整个Dubbo 过程大致的介绍的差不多。

什么是Dubbo?

一个分布式服务治理框架

Dubbo的作用是什么?

作用是解决下面的问题

单一应用架构

垂直应用架构

分布式服务架构

流动计算架构

1240

节点角色说明

 

1240

调用关系说明

服务容器负责启动,加载,运行服务提供者。

服务容器负责启动,加载,运行服务提供者。

服务提供者在启动时,向注册中心注册自己提供的服务。

服务消费者在启动时,向注册中心订阅自己所需的服务。

注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。

服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

详细介绍下 Registry Provider Consumer

因为这三者是整个Dubbo 调用过程的链路核心

talk is cheap show me the code

光说不行,咱们通过看下项目中的源码来看下dubbo整个结构

dubbo提供了 一个项目供大家测试调试 整个demo已经在你down的dubbo的项目中了

打开我们的dubbo项目,我们会看到这样的一个子项目

1240

这里就是那个demo子项目 就是我们可以直接运行测试的项目

将整个测试项目展开,我们会看见这几个文件

1240

我们先进入consumer项目中的 Consumer类中,运行这个类。在这里是一个main函数,我们直接运行就ok了

之后我们再启动Provider 类。这样的话,我们就启动了一对消费者和生产类。这样的话,最简单的dubbo程序就 启动了。

在此我向大家推荐一个架构学习交流群。交流学习群号:821169538  

里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析

高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些

成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多。

下面我们根据这个最简单的类来分析下

1240

1240

消费者的测试demo,循环调用方法

 

1240

我们通过配置文件xml来进行服务的发现和启用,还有对注册中心的配置

下面介绍下服务的提供者Provider

出处:https://www.tuicool.com

1240

1240

1240

 

转载于:https://my.oschina.net/u/3972077/blog/2249406

你可能感兴趣的文章
启用了不安全的HTTP方法【转】
查看>>
波兰表示法 前缀表示法
查看>>
js类型转换函数
查看>>
016 设计模式之代理模式
查看>>
NOD 1113矩阵快速幂
查看>>
Accurately Say "CocaCola"!(找规律+打表)
查看>>
GTK--布局管理
查看>>
php抓取网页特定div区块及图片,从简单入手
查看>>
requests模块报错:Use body.encode('utf-8') if you want to send it encoded in UTF-8.
查看>>
JavaScript 基础
查看>>
单元测试
查看>>
silverlight 动态绑定树TreeView 节点添加CheckBox
查看>>
Sql Server中的表组织和索引组织(聚集索引结构,非聚集索引结构,堆结构)
查看>>
GIT
查看>>
MAX SUM
查看>>
uva 11121 Base -2
查看>>
poj 1523 SPF
查看>>
POJ 2318 TOYS(点与直线的关系 叉积&&二分)
查看>>
To Fill or Not to Fill
查看>>
Fiddler ScriptEditor 扩展编程oSession相关方法
查看>>