Advertisement

什么是Dubbo?Dubbo在项目中是怎么用的?

阅读量:

什么是Dubbo?

黑马程序员提供了一个关于Dubbo快速入门的学习指南

在这里插入图片描述

Dubbo源自阿里巴巴开源项目,专门用于实现远程服务调用(RPC)的技术方案,并提供了面向服务架构(SOA)的服务治理方案.其体系架构包含五个关键组件,主要由容器管理模块、服务提供模块、注册管理模块、客户端消费模块以及监控管理模块组成.

容器主要负责启动、加载、运行服务提供者;

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

消费者向注册中心订阅自己的服务;

注册中心返回供方服务列表供消费者查阅。如有变动,请通过长连接传输变更信息。

针对服务消费者,
在提供者地址列表中,
基于软负载均衡算法,
选择一台提供者进行连接操作,
在发生连接失败时,
则会尝试重新连接另一台提供者。

为消费者和服务者记录(他们在内存中的)使用次数及耗时,并按每分钟一次的频率将统计数据定期发送至监控中心。

在这里插入图片描述

Dubbo 在项目中是怎么用的?

Dubbo 主要用于实现不同系统间的高效通信与交互,在项目中根据功能划分形成了独立的功能模块,并通过三级架构将这些模块进一步细分为独立的服务。在三级架构体系中, 控制层主要承担着服务消费者的角色, 而业务层与持久层则共同负责向这些服务提供支持。这种架构设计使得系统实现了服务化部署, 提升了系统的开发效率, 实现了功能模块之间的解耦与独立运行。

在项目中采用 Dubbo 和 Spring 的整合方案, 全部配置基于 Spring 技术, 仅需通过 Spring 技术实现 Dubbo 配置的加载, 最终完成了服务的发布与调用功能. .Net 服务主要通过 dubbo:service 标签进行暴露, 在消费端则利用 dubbo:reference 标签进行引用. .Net 注册中心采用 zookeeper 实现, 并对各项 URL 进行管理与配置.

Dubbo 都支持什么协议?

Dubbo 支持 Dubbo 协议、RMI 协议、hessian 协议、Http 协议等。

该协议采用缺省配置;基于单线程非阻塞式通信机制;通过多线程池实现异步请求处理;减少握手操作的同时提升了并行处理能力;采用的是Hessian二进制序列化编码方案;性能表现优异,在实际应用中表现出色。

主要用于传递规模较小的数据包(建议控制在100K以内),其中消费者数量多于提供者数量。基于单线连接设计的系统避免传输过大的文件。

RMI协议基于JDK标准实现(以TCP协议为基础),采用阻塞式的简短连接方式,并遵循JDK规定的序列化方法进行同步通信机制。该协议适用于消费者数量与提供者数量相近的情况,并支持传输文件。经过测试发现,在某些情况下会出现连接失败问题,并且需要重新构建Stub对象。

Hessian 协议基于 HTTP 通讯机制,并通过 Servlet 接口暴露服务功能。该协议采用多个简短的连接进行同步传输,并利用 Hessian 的二进制形式编码实现数据传输。特别适用于提供方数量超过消费者的情况。

全部评论 (0)

还没有任何评论哟~