引言:

以前的车马很慢,一生只够爱一个人
以前的网站人很少,一个单应用服务着一个人
————————————————————
现在,动不动就谈什么高并发,千万级访问。单应用?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几大核心要点

  1. 服务定义:消费者消费服务者提供的服务。

  2. 服务注册:消费者和服务者都需要公开自己的身份,方便被寻找。常用zookeeper注册。

  3. 服务监控:对服务状态实时监控,方便改进质量。

  4. 远程通信与信息交换:服务者和消费者之间的交流,通过通信协议。

  5. 服务调用:消费者从zookeeper上找对服务者,然后享受他的服务。

  6. 注册/注销服务:服务者上班,和下班的状态。

  7. 服务订阅/取消:消费者按摩和不按摩的状态。

长话短说

那么说了这么多,亲们越看越模糊,感觉博主像个傻逼一样BB了半天,却根本没让我们了解Dubbo,怎么办?
OK!
简单地说,例如
第一步:Dubbo把项目切割开来变成两个,然后项目一(action)留一个接口,告诉zookeeper我是消费者,项目二(service)实现那个接口,告诉zookeeper我是消费者。
第二部:当action被调用走到接口的时候,会去zookeeper询问,我的消费者在哪里啊,然后zookeeper告诉他service的IP地址和端口,找到接口的Impl实现类走完,然后返回给action结果。

没了~入门就这么简单。

至于zookeeper在文中反复提到,他又是什么,在这里透个小底,他是标配的小神器。除了普通的注册之外,他还能提供负载均衡等强大功能,而且添加和移除集群节点非常平滑哦!

点击查看更多

点击有惊喜

Dubbo(一) 开始认识Dubbo,分布式服务框架的更多相关文章

  1. 【转】Dubbo是Alibaba开源的分布式服务框架

    Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模 ...

  2. Dubbo阿里Alibaba开源的分布式服务框架

    [获奖公布]"我的2016"主题征文活动    程序猿全指南,让[移动开发]更简单!      [观点]移动原生App开发和HTML 5开发,你更看好哪个?   博客的神秘功能 D ...

  3. 阿里分布式服务框架Dubbo的架构总结

    Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模 ...

  4. 使用dubbo分布式服务框架发布服务及消费服务

    什么是DUBBO DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案. 准备工作 安装zookeeper ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服 ...

  5. 阿里巴巴分布式服务框架dubbo学习笔记

    Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的 ...

  6. 高性能的分布式服务框架 Dubbo

    我思故我在,提问启迪思考! 1. 什么是Dubbo? 官网:http://dubbo.io/,DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及作为SOA服务治理的 ...

  7. Dubbo 分布式服务框架(spring、zookeeper)

    DUBBO DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架, alibaba资源 源码:https://github.com ...

  8. 阿里巴巴分布式服务框架Dubbo介绍(1)主要特色

    引言 互联网服务和BS架构的传统企业软件相比,系统规模上产生了量级的差距.例如 传统BS企业内部门户只需要考虑数百人以及几千人的访问压力,而大型互联网服务有时需要考虑的是千万甚至上亿的用户: 传统企业 ...

  9. [推荐]dubbo分布式服务框架知识介绍

    [推荐]dubbo分布式服务框架知识介绍 CentOS+Jdk+Jboss+dubbo+zookeeper集群配置教程    http://wenku.baidu.com/view/20e8f36bf ...

  10. Dubbo分布式服务框架入门

    参考http://blog.csdn.net/u013142781/article/details/50387583 一.Dubbo概念介绍 1.1.Dubbo是什么? Dubbo是一个分布式服务框架 ...

随机推荐

  1. SQL测试题

    一.网上收集了一些测试题,对于掌握SQL查询语句. /* Navicat MySQL Data Transfer Source Server : lizebo's MYSQL Source Serve ...

  2. Python函数中如何定义参数

    一.位置参数:根据函数定义时的参数位置传递参数#形参和实参的个数必须一致def fun1(): print("运行结果") print("this is fun1(),n ...

  3. ThinkPHP中处理Layout模板的问题

    ThinkPHP中的模板引擎内置了布局模板功能支持,可以方便实现嵌套. 其中有两种布局方式,一种为以布局模板为入口的布局方式,但是需要开启LAYOUT_ON 参数(默认不开启) 并且设置布局入口文件名 ...

  4. thinkphp框架知识点

    基本配置 define('APP_DEBUG',true);//开启debug模式 //记录日志 'LOG_RECORD' => true, //系统日志在记录的时候需要开启debug调试模式, ...

  5. javascript设计模式——代理模式

    前面的话 代理模式是为一个对象提供一个占位符,以便控制对它的访问. 代理模式是一种非常有意义的模式,在生活中可以找到很多代理模式的场景.比如,明星都有经纪人作为代理.如果想请明星来办一场商业演出,只能 ...

  6. vue-cli 安装失败Failed to download repo vuejs-templates/webapck-simple: Response code 404 (Not Found)

    新学习vue的萌新们经常会遇到各种各样的坑.例如上面这个报错.这个一般是命令行面板写错单词导致. 正确:vue init webpack-simple .(注意"."点,指当前目录 ...

  7. 一段文字中的几个keyword显示高亮

    将一段文字中的几个keyword显示高亮 演示样例:将"我的愿望是当个绿巨人,所以我想让我的皮(derma)肤是绿色"中的"皮肤"显示绿色. <span ...

  8. iOS 从应用程序跳转到评价界面

    1,跳转到App Store: NSString *str = [NSString stringWithFormat:@"http://itunes.apple.com/us/app/id% ...

  9. HTML学习笔记之三(localstorage的使用)

    localstorage的使用 1.获取对象 var localstroage = window.localStorage; 2.存储值 localstroage.setItem('openid',' ...

  10. 【 全干货 】5 分钟带你看懂 Docker !

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者丨唐文广:腾讯工程师,负责无线研发部地图测试. 导语:Docker,近两年才流行起来的超轻量级虚拟机,它可以让你轻松完成持续集成.自动交付 ...