Dubbo入门教程,谈谈为什么要用Dubbo?

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

Dubbo核心部分包含:

  • 远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
  • 集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
  • 自动发现:基于注册中心目录服务,使服务消费方能动态地查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

Dubbo特色

  • 特色1:服务注册与发现的注册中心Registry

注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。这个功能是应有之义

服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。这个就很强大了,

注册中心的这两个特性大大提高了系统的可用性和扩展性。注册中心既可以采用Multicast注册中心,也可以集成Zookeeper,也可以采用Redis,非生产环境也可以使用一个Dubbo自己实现的Simple注册中心,非常灵活。

  • 特色2:统计服务的调用次调和调用时间的监控中心Monitor

服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

监控负载,排查性能瓶颈就方便多了。简易监控中心的安装,请参考这里。

  • 特色3:使用上,采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。
  • 特色4:开源部分中,还包含有一个管理控制台的实现(内部裁剪版本,开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能)

为什么我们需要dubbo?

很多时候,其实我们使用这个技术的时候,可能都是因为项目需要,所以,我们就用了,但是,至于为什么我们需要用到这个技术,可能自身并不是很了解的,但是,其实了解技术的来由及背景知识,对于理解一项技术还是有帮助的,那么,dubbo是怎么被提上日程的呢?

在互联网的发展过程中,在以前,我们只需要一个服务器,将程序全部打包好就可以,但是,随着流量的增大,常规的垂直应用架构已无法应对,所以,架构就发生了演变。

1. 单一应用架构

2. 应用和数据库单独部署

3. 应用和数据库集群部署

4. 数据库压力变大,读写分离

5. 使用缓存技术加快速度

6. 数据库分库分表

7. 应用分为不同的类型拆分

发展到这个阶段的时候,我们发现,应用与应用之间的关系已经十分的复杂了,就会出现以下几个问题(以下摘录于官网):

1. 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。

2. 当进一步发展,服务间依赖关系变得错综复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整地描述应用的架构关系。

3. 接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?

为了解决这由于架构的演变所产生的几个问题,于是,dubbo产生了。当然,解决这个问题的技术不止dubbo。

Dubbo入门教程,谈谈为什么要用Dubbo?

从上面Dubbo的服务治理图我们就可以看到,Duboo很好了解决了上面所出现的一些问题。

所以,当你的系统架构发展到了这种阶段的时候,就需要考虑使用Dubbo了。

动力节点的Dubbo视频教程,从基础开始手把手式地详细讲解RPC概念,PRC在分布式应用的重要作用。Dubbo分布式服务框架的应用入门基础。传统应用到分布式以及微服务的转变思想。Dubbo协议的特点。Dubbo分布式服务的详细开发流程、Dubbo服务的实施部署,Zookeeper的服务管理等。

 

上一篇:vue 学习笔记day10 vue-resource 和java 后端交互


下一篇:什么是RPC