主页 > 新闻资讯 > 大数据培训:分布式服务Dubbo设计原理

大数据培训:分布式服务Dubbo设计原理

作者:张老师 浏览次数: 2021-02-26 17:48
出身阿里的Dubbo框架,在分布式服务领域,还是占据一定的市场的,另外还有Spring Cloud也是大家熟知的。今天的大数据培训分享,我们主要还是来讲讲Dubbo,从分布式服务Dubbo设计原理讲起。

大数据培训:分布式服务Dubbo设计原理

1、分布式服务框架设计

分布式服务框架一般可以分为以下几个部分:

(1)RPC基础层

包括底层通信框架,如NIO框架、通信协议,序列化和反序列化协议,以及在这几部分上的封装,屏蔽底层通信细节和序列化方式差异。

(2)服务发布/消费

服务提供者根据消费者请求消息中的接口名,方法名,参数列表等信息,通过Java反射,调用本地的接口实现类;服务消费者将服务提供者发布的接口封装成远程服务调用。

(3)服务调用链

在服务调用的职责链中,通过在调用链切面的编码完成相关的监控和扩展,如负载均衡,服务调用性能统计,调用完成通知,失败重发等功能。

(4)服务注册中心

注册中心负责服务的发布和通知,需要支持服务的平滑上线下线等。

(5)服务治理中心

服务治理中心是一个可视化的模块,提供对服务的可视化分析和维护,包括服务运行状态,调用关系和健康度等。

2、Dubbo的设计角色

(1)系统角色

Provider:暴露服务的服务提供方。

Consumer:调用远程服务的服务消费方。

Registry:服务注册与发现的注册中心。

Monitor:统计服务的调用次调和调用时间的监控中心。

Container:服务运行容器。

(2)调用关系

服务容器负责启动,加载,运行服务提供者。

服务提供者在启动时,向注册中心注册自己提供的服务。

服务消费者在启动时,向注册中心订阅自己所需的服务。

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

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

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

3、Dubbo的底层实现

(1)协议支持

Dubbo支持多种协议:

Dubbo协议、Hessian协议、HTTP协议、RMI协议、WebService协议、Thrift协议、Memcached协议、Redis协议等。

(2)默认使用Dubbo协议

连接个数:单连接

连接方式:长连接

传输协议:TCP

传输方式:NIO异步传输

序列化:Hessian二进制序列化

适用范围:传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要使用dubbo协议传输大文件或超大字符串。

使用场景:常规远程服务方法调用

从上面的适用范围总结,dubbo适合小数据量大并发的服务调用,以及消费者机器远大于生产者机器数的情况,不适合传输大数据量的服务比如文件、视频等,除非请求量很低。

关于大数据培训,分布式服务Dubbo设计原理,以上就为大家做了简单的介绍了。Dubbo框架的学习,对于内部设计原理的理解还是非常有必要的,对于后续架构层面的理解也是有帮助的。成都加米谷大数据,专业大数据培训机构,大数据开发,数据分析挖掘,零基础班本月正在招生中,大纲及学习视频,可联系客服领取!
热点排行
推荐文章
立即申请>>