dubbo介绍以及创建
1、什么是dubbo?
DUBBO是一个分布式服务框架(关于框架,其实就是配置文件加java代码),致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容。
总结:
dubbo的对象:
Provider 暴露服务方称之为“服务提供者”。
Consumer 调用远程服务方称之为“服务消费者”。
Registry 服务注册与发现的中心目录服务称之为“服务注册中心”。
Monitor 统计服务的调用次调和调用时间的日志服务称之为“服务监控中心”
dubbo作为一种分布式的服务框架,中间有个注册中心,服务的提供者和消费者按照dubbo协议进行配置,分别向注册中心提交服务和消费服务。而在外部有个监控中心,负责监控服务的使用情况,消费者和服务者的调用情况(包括调用的时间和次数)。
2、为什么要使用dubbo?
首先从架构模式上来讲:

一个系统用作客户端,一个系统则充当服务端。服务端要把自己的接口定义提供给客户端,客户端将接口定义在spring中的bean。客户端可以直接使用这个bean,就好像这些接口的实现也是在自己代码里一样。(这是与httpclient的区别,使用dubbo后服务的消费端感觉像是在自己的系统中一样使用bean类)
客户端和服务端启动的时候都会把自己的机器IP注册到zookeeper上。客户端会把zk上的服务端ip拉到磁盘上,并记录哪些ip提供哪些服务(服务端启动的时候暴露给zk)。然后调用的时候客户端会根据ip调用服务端的服务,这时候即使zk挂掉也没关系。(在服务端的配置中暴露服务接口,将服务注册到注册中心)。
3、dubbo如何创建?
关于构建可以参考博文:http://blog.csdn.net/huangyekan/article/details/42172675
Dubbo官网并没有提供下载服务,但是dubbo将源码托管于github,并且将jar包发布到maven的中央仓库,所以可以从github和maven中央仓库来下载。
dubbo的源码下载:
https://github.com/alibaba/dubbo
dubbo的发布包下载:
http://repo1.maven.org/maven2/com/alibaba/dubbo/
使用maven来构建dubbo:
dubbo的模块如下:

既然可以下载得到源码以及发布包,那么为什么要去构建dubbo呢?其实是这样子的:
核心框架、管理控制台、简易监控中心、简易注册中心是我们需要的模块,目前,只有核心模块可以下载到,其它的均无法直接下载,所以我们需要构建dubbo。
构建步骤:
这是总共需要导入eclipse的源码:我们需要先导入下面依赖,再导入核心源码。

导入依赖:

再导入核心源码:

完成后:

安装hessian-lite、opensesame到本地仓库
进行dubbo工程打包:(这里注意是核心包的运行)

构建完成后,我们验证下是否成功,主要检查下dubbo的几个文件是否存在,存在则成功,不存在则失败。
核心包

dubbo的管理控制台:

dubbo的注册中心:

dubbo的监控中心:

以上就是dubbo的构建过程。
4、dubbo的架构模式?

这四者之间的关系:
调用关系:
1. 服务容器负责启动,加载,运行服务提供者。
2. 服务提供者在启动时,向注册中心注册自己提供的服务。
3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
5、dubbo的注册中心zookeeper的配置
我们看到架构图中有注册中心,注册中心这我们使用zookeeper,还有其他的,具体我们在讲zookeeper的时候会讲。
关于zookeeper的介绍:
说简单点,zookeeper我们在大数据范围内成为动物园管理员,大数据中的很多技术有相对应的动物名字。
在分布式系统中,zookeeper主要是用来管理服务的,即服务的提供者,服务的消费者。
zookeeper安装呢?
(1)下载压缩包:
(2)解压后,修改conf下的:

修改zookeeper.cfg名称为zoo.cfg

打开配置文件:

修改此处datadir的位置:我们一边单独建立一个zookeeper的数据文件:
这里我们建立在F目录下。根据自己的需要建立。
启动:

成功后出现如下界面:

zookeeper的默认端口为2181.
但是我们一般在项目中使用的zookeeper集群,关于集群的配置,我们可以百度下如何配置。
除了zookeeper外,dubbo的注册中心有很多:multicast zookeeper redis simple
6、dubbo的监控中心的配置
monitor的原理:
原理:服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
如何搭建监控服务:
下载压缩包后,解压:

修改配置文件:

修改注册中心的位置:(记住这里我们使用了zookeeper的zkclient)

在配置文件中配置监控,这个我们在搭建项目的时候会介绍这个配置文件,这里先写了,后面再详细说。


启动成功界面:


监控服务:

图表:

dubbo介绍以及创建的更多相关文章
- 161130、Dubbo+SpringMVC工程创建详解
Dubbo出现的目的是为了应对现在高并发,高数据量请求的问题.目前的垂直应用架构已经无法满足现在大数据的冲击,SOA就应运而生,而Dubbo在国内使用的还是比较多,稳定性也比较不错. 架构 节点角色说 ...
- python模块介绍- xlwt 创建xls文件(excel)
python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...
- dubbo系列一:dubbo介绍、dubbo架构、dubbo的官网入门使用demo
一.dubbo介绍 Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成.简单地说,dubbo是一个基于Spri ...
- dubbo介绍及其使用案例
dubbo介绍及其使用案例 1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果 ...
- Python 数据处理扩展包: pandas 模块的DataFrame介绍(创建和基本操作)
DataFrame是Pandas中的一个表结构的数据结构,包括三部分信息,表头(列的名称),表的内容(二维矩阵),索引(每行一个唯一的标记). 一.DataFrame的创建 有多种方式可以创建Data ...
- dubbo为consumer创建代理
ReferenceConfig.init()方法中获取到了最终的代理对象,先观察一下代理对象的视图. 默认使用javassist生成动态类,可配置proxy为jdk,则使用jdk动态代理: <d ...
- 高性能优秀的服务框架-dubbo介绍
先来了解一下这些年架构的变化,下面的故事是我编的.... "传统架构":很多年前,刚学完JavaWeb开发的我凭借一人之力就开发了一个网站,网站 所有的功能和应用都集中在一起,方便 ...
- C++MFC编程笔记day01 MFC介绍、创建MFC程序和重写消息处理
一.MFC概念和作用 1.全称Microsoft Foundation Class Library,我们称为微软基础类库,封闭了绝大部分的win32 Api函数,C++语法中的数据结构,程序的运行流程 ...
- dubbo介绍及实战
1. dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封 ...
随机推荐
- 《Effective C++》读书笔记 条款02 尽量以const,enum,inline替换#define
Effective C++在此条款中总结出两个结论 1.对于单纯常量,最好以const对象或enum替换#define 2.对于形似函数的宏,最好改用inline函数替换#define 接下来我们进行 ...
- hive使用spark引擎的几种情况
使用spark引擎查询hive有以下几种方式:1>使用spark-sql(spark sql cli)2>使用spark-thrift提交查询sql3>使用hive on spark ...
- java学习过程小问题
一:基本的需要注意点(基础语句); package my; public class hello { public static void main(String[] args) { // TODO ...
- POJ 2187 Beauty Contest(凸包+旋转卡壳)
Description Bessie, Farmer John's prize cow, has just won first place in a bovine beauty contest, ea ...
- 软件测试基础-Homework1
The error was in my graduate work which was about game development.I broadcast some messages to the ...
- 视频播放截图及简要文字介绍——Thunder团队
视频播放截图及简要文字介绍 图一:团队Logo ——从此我们有了自己的标志 图二:扫描本地书籍 ——可阅读本地的喜爱书籍 图三:在本地添加自己喜爱的图书 ——将自己喜爱的书籍加入书架,方便阅读 图四: ...
- Java学习个人备忘录之面向对象概念
对象,其实就是该类事物实实在在存在的个体. 类与对象之间的关系?类:一类事物的描述.对象:该类事物的实例.在java中通过new来创建的.举例来说,类就是汽车说明书,类只能在理论上造一辆汽车,并且这个 ...
- 20145214 《Java程序设计》第7周学习总结
20145214 <Java程序设计>第7周学习总结 教材学习内容总结 时间的度量 格林威治标准时间(GMT),现已不作为标准时间使用,即使标注为GMT(格林威治时间),实际上谈到的的是U ...
- 这些JavaScript编程黑科技,装逼指南,高逼格代码,让你惊叹不已
Javascript是一门很吊的语言,我可能学了假的JavaScript,哈哈,大家还有什么推荐的,补充送那啥邀请码. 本文秉承着:你看不懂是你SB,我写的代码就要牛逼. 1.单行写一个评级组件 &q ...
- Oracle导数据到SQL server的方法总结
通过oracle10g 访问sql server 2008 导数据步骤 最近在项目中遇到要将Oracle数据库的数据导入到SQL server数据库中,解决办法如下: 一.准备工作 配置Oracle ...