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是一个分布式服务框架 ...
随机推荐
- Spring MVC 学习总结(八)——Spring MVC概要与环境配置(IDEA+Maven+Tomcat7+JDK8、示例与视频)
一.MVC概要 MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范,用一种将业务逻辑.数据.显示分离的方法组织代码,MVC主要作用是降低了视图与业务 ...
- Java编程学习技巧和方法总结
干货:必须要有反馈,不断调整,多读书,多些笔记. 解释:不练习你以为你能掌握?笑话,只有自己根据一个个小目标不断的敲,运行,给予你反馈,这样才会真的进步. 纸上谈Java,是永远停止在口. 关于笔 ...
- 【深度学习系列】用PaddlePaddle和Tensorflow实现经典CNN网络Vgg
上周我们讲了经典CNN网络AlexNet对图像分类的效果,2014年,在AlexNet出来的两年后,牛津大学提出了Vgg网络,并在ILSVRC 2014中的classification项目的比赛中取得 ...
- 【luogu P1186】玛丽卡
https://www.luogu.org/problem/show?pid=1186 考虑暴力,枚举图上每一条边删去后跑Dijkstra,取M次的最大值. 仔细想想就会发现删除最短路以外的边对最短路 ...
- Android数据绑定技术一,企业级开发
PS:数据绑定,顾名思义是数据与一些控件或者用户账号等绑定,这样用的好处是便于管理.代码清晰,量少. 首先要了解什么是数据绑定? 为什么要用数据绑定? 怎么用数据绑定? 语法的使用 简单例子,数据绑定 ...
- Spring的Bean内部方法调用无法使用AOP切面(CacheAble注解失效)
Spring的Bean内部方法调用无法使用AOP切面(CacheAble注解失效) 前言 今天在使用Spring cache的Cacheable注解的过程中遇见了一个Cacheable注解失效的问题, ...
- 中小企业为什么要上HR系统
人力资源不不过公司资源.也是一种社会资源. 越来越多的企业已将人作为一种重要的资源来看待,资金和技术则是其次.所以企业内部科学的全面的人力资源管理也因此处在了十分重要的位置上. 现在的人力资源是服务于 ...
- Object-C与Swift混合开发
Object-C作为Apple的iOS App开发语言服务了很多个年头,2014年Apple推出了新的编程语言Swift.更高效更安全的口号再次吸引了一大批非iOS开发程序猿进入,小编觉得Swift代 ...
- 数据结构--二叉查找树的java实现
上代码: package com.itany.erchachazhaoshu; public class BinarySearchTree<T extends Comparable<? s ...
- 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯云容器服务团队 源码为 k8s v1.6.1 版本,github 上对应的 commit id 为 b0b7a323cc5a4a ...