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是一个分布式服务框架 ...
随机推荐
- C#开发Windows窗体应用程序的步骤
使用C#开发应用程序时,一般包括创建项目.界面设计.设置属性.编写程序代码.保存项目.程序运行等6个步骤. 1.创建项目 在Visual Studio2017开发环境中选择“文件”→“新建”→“项目” ...
- 实践作业1:测试管理工具实践 Day2
1.尝试配置TestLink所需环境 安装配置php+apache+mysql时遇到一系列稀奇古怪的错误. 2.百度之后发现有可行的替代工具:Vertrigoserv(VertrigoServ是一个W ...
- 洛谷 P3379 【模板】最近公共祖先(LCA)Tarjan离线
题目链接:LCA tarjan离线 这道题目WA无数发,最后还是参考了大神的blog 谁会想到因为一个输入外挂WA呢 大概是我的挂是假挂吧...orz(其实加上外挂,速度提升很多) 用链式前向星保存边 ...
- 玲珑学院-ACM比赛1014 - Absolute Defeat
1014 - Absolute Defeat Time Limit:2s Memory Limit:64MByte Submissions:257Solved:73 DESCRIPTION Eric ...
- WireShark 使用
1.干货 Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直 ...
- Swift 线程安全数组
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:BigNerdCoding 有并发的地方就存在线程安全问题,尤其是对于 Swift 这种还没有内置并发支持的语言来说线程安全问题更为突出 ...
- hicoder1142 三分求极值
在直角坐标系中有一条抛物线y=ax^2+bx+c和一个点P(x,y),求点P到抛物线的最短距离d. 我们代入公式,有: $d = min(\sqrt{(X - x)^2+(aX^2+bX+c-y)^2 ...
- html Embed用法 页面播放视频
一句话概括所有问题.查资料说在页面播放视频都是一些插件 刚发现一个Html自带的标签 很吊的样子 <div > <embed src="${compla ...
- LABjs、RequireJS、SeaJS 哪个最好用?为什么?
感谢玉伯在知乎的奉献,下面全文转载:http://www.zhihu.com/question/20342350/answer/14828786 LABjs 的核心是 LAB(Loading and ...
- javaweb学习总结(七)——HttpServletResponse对象(一)(转)
转载自 http://www.cnblogs.com/xdp-gacl/p/3789624.html Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对 ...