Dubbo(一) 开始认识Dubbo,分布式服务框架
引言:
以前的车马很慢,一生只够爱一个人
以前的网站人很少,一个单应用服务着一个人
————————————————————
现在,动不动就谈什么高并发,千万级访问。单应用?BOOM!分分钟爆炸。于是,技术随着业务的需求诞生了新的产物。
框架演变:
单一应用架构 :所有的功能部署在一个应用中。
垂直应用架构 :将应用拆成互不相干的几个应用,以提升效率。
分布式服务架构 :当垂直应用越来越多,应用之间交互不可避免,此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。

OK!到此为止,我们今天的主要目标就是分布式服务架构之Dubbo。
在了解Dubbo之前,我们先了解两个概念:
什么是服务框架?
服务框架就是提供服务的,服务框架是基于业务对应SaaS分发模式的服务进行整合,以产生新的应用。服务框架中,与业务相关,但与业务功能的整合无关的组件以外部服务形式引入(也就是说把一些业务分离出来,变成一种服务,供其他人调用该服务)。
什么是RPC?
RPC全拼是(Remote Procedure CallProtocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。(理解:远程调用协议,为Dubbo实现远程接口调用做支持)
Dubbo是什么
Dubbo,阿里巴巴的开源框架-分布式框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
简单的说,就是把一个应用分成几份,他负责各份应用之间的通信以及管理。
难道你不知道springCloud吗?
emmm!sprigcloud,I know,spring家族的一大分布式神器,在近两年随着微服务的风靡,他也是一大潮流。但是论目前使用度,springcloud还远远不如老牌的dubbo,而且最近阿里重新开始疯狂维护Dubbo,谁知道他到后面的发展不会比spring好呢?在都是找工作的压力下,还是会点dubbo没毛病吧。
既然你提到了springCloud,那我们也顺便来对比下两者之间的区别吧。
上图看得出,dubbo就是对应用做了管理,而springcloud继承了spring一如既往的特点,整合万物。一句话,没有我不整合,只有你用不到的。 当然啦,dubbo那些没有的功能就不能实现吗?NO!只是要自己结合第三方去实现而已。
所以说一句公道话,现在springcloud更具技术代表性,在大部分公司用springcloud的情况下,需要什么也能简单的实现,而dubbo,还得看阿里团队以后的努力。当然!技术流弊的,这些没什么大不了。
Dubbo通信协议
Dubbo这么强大的一个框架,通信协议也肯定十分强大,他支持多种协议,例如:
- Dubbo协议【默认协议】
- Hessian协议
- HTTP协议
- RMI协议
- WebService协议
- Thrift协议
- Memcached协议
- Redis协议
在通信过程中,不同的服务等级一般对应着不同的服务质量,那么选择合适的协议便是一件非常重要的事情。你可以根据你应用的创建来选择。例如,使用RMI协议,一般会受到防火墙的限制,所以对于外部与内部进行通信的场景,就不要使用RMI协议,而是基于HTTP协议或者Hessian协议。
关于协议的选择,在后面的文章会有讲到,或者参考文章→dubbo多协议选择
Dubbo几大核心要点
服务定义:消费者消费服务者提供的服务。
服务注册:消费者和服务者都需要公开自己的身份,方便被寻找。常用zookeeper注册。
服务监控:对服务状态实时监控,方便改进质量。
远程通信与信息交换:服务者和消费者之间的交流,通过通信协议。
服务调用:消费者从zookeeper上找对服务者,然后享受他的服务。
注册/注销服务:服务者上班,和下班的状态。
服务订阅/取消:消费者按摩和不按摩的状态。
长话短说
那么说了这么多,亲们越看越模糊,感觉博主像个傻逼一样BB了半天,却根本没让我们了解Dubbo,怎么办?
OK!
简单地说,例如
第一步:Dubbo把项目切割开来变成两个,然后项目一(action)留一个接口,告诉zookeeper我是消费者,项目二(service)实现那个接口,告诉zookeeper我是消费者。
第二部:当action被调用走到接口的时候,会去zookeeper询问,我的消费者在哪里啊,然后zookeeper告诉他service的IP地址和端口,找到接口的Impl实现类走完,然后返回给action结果。
没了~入门就这么简单。
至于zookeeper在文中反复提到,他又是什么,在这里透个小底,他是标配的小神器。除了普通的注册之外,他还能提供负载均衡等强大功能,而且添加和移除集群节点非常平滑哦!
Dubbo(一) 开始认识Dubbo,分布式服务框架的更多相关文章
- 【转】Dubbo是Alibaba开源的分布式服务框架
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模 ...
- Dubbo阿里Alibaba开源的分布式服务框架
[获奖公布]"我的2016"主题征文活动 程序猿全指南,让[移动开发]更简单! [观点]移动原生App开发和HTML 5开发,你更看好哪个? 博客的神秘功能 D ...
- 阿里分布式服务框架Dubbo的架构总结
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模 ...
- 使用dubbo分布式服务框架发布服务及消费服务
什么是DUBBO DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案. 准备工作 安装zookeeper ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服 ...
- 阿里巴巴分布式服务框架dubbo学习笔记
Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的 ...
- 高性能的分布式服务框架 Dubbo
我思故我在,提问启迪思考! 1. 什么是Dubbo? 官网:http://dubbo.io/,DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及作为SOA服务治理的 ...
- Dubbo 分布式服务框架(spring、zookeeper)
DUBBO DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架, alibaba资源 源码:https://github.com ...
- 阿里巴巴分布式服务框架Dubbo介绍(1)主要特色
引言 互联网服务和BS架构的传统企业软件相比,系统规模上产生了量级的差距.例如 传统BS企业内部门户只需要考虑数百人以及几千人的访问压力,而大型互联网服务有时需要考虑的是千万甚至上亿的用户: 传统企业 ...
- [推荐]dubbo分布式服务框架知识介绍
[推荐]dubbo分布式服务框架知识介绍 CentOS+Jdk+Jboss+dubbo+zookeeper集群配置教程 http://wenku.baidu.com/view/20e8f36bf ...
- Dubbo分布式服务框架入门
参考http://blog.csdn.net/u013142781/article/details/50387583 一.Dubbo概念介绍 1.1.Dubbo是什么? Dubbo是一个分布式服务框架 ...
随机推荐
- Flex布局学习笔记
任何元素都可以使用Flex布局,包括行内元素 display: flex; display: inline-flex使用Flex布局之后,子元素的float, clear, vertical-alig ...
- 配置KindEditor富文本编辑器
第一步:首先我们要到KindEditor官网下载资源包-点击进入官网下载KindEditor资源包 第二部:在下载完了KindEditor的资源包后解压结构如下图所示: 里面包括集中语言的文件上传后台 ...
- DIN(Deep Interest Network of CTR) [Paper笔记]
背景 经典MLP不能充分利用结构化数据,本文提出的DIN可以(1)使用兴趣分布代表用户多样化的兴趣(不同用户对不同商品有兴趣)(2)与attention机制一样,根据ad局部激活用户兴趣相关的兴趣(用 ...
- Nginx日志切割案例讲解,Nginx的知识讲解
Nginx 是一个非常轻量的 Web 服务器,体积小.性能高.速度快等诸多优点.但不足的是也存在缺点,比如在产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将会导致日志文件容量 ...
- java学习笔记之集合家族1
集合 集合介绍: 由于数组中存放对象,对对象操作起来不方便.java中有一类容器,专门用来存储对象. 集合与数组的区别: 1.数组的长度固定的,而集合长度时可变的 2.数组只能储存同一类型的元素,而且 ...
- 转自知乎-wifi破解
上点python有意思的代码. 环境准备 python2.7 pywifi模块 字典 清除系统中的任何wifi连接记录 导入模块 这里用的模块就这三个 pywifi的_wifiutil_linux.p ...
- EularProject 43: 带条件约束的排列组合挑选问题
Sub-string divisibility Problem 43 The number, 1406357289, is a 0 to 9 pandigital number because it ...
- 蓝牙核心技术概述(五):蓝牙协议规范(irOBEX、BNEP、AVDTP、AVCTP)
关键词:蓝牙核心技术协议 irDA BNEP AVDTP AVCTP 作者:xubin341719(欢迎转载,请注明作者,请尊重版权,谢谢! )欢迎指正错误,共同学习.共同进步!! 下载链接:Bl ...
- 如何处理使用js兼容所有浏览器的问题
首先:如何处理兼容问题 1.如果两个都是属性,用逻辑||做兼容 2.如果有一个是方法,用三元做兼容 3.如果是多个属性或方法,封装函数做兼容 分享两个小知识点: 1.取消拖拽的默认行为: docume ...
- jersey实现文件下载
好久没有更新博客了,今天来再次总结一下,之前有整理过关于jersey实现文件上传功能的相关知识,但是前一阵子在实习过程中写接口又要实现文件下载的功能,由于这些东西基本都是使用jersey提供的注解和接 ...