我是靠谱客的博主 追寻荷花,最近开发中收集的这篇文章主要介绍仿写Dubbo-初识Dubbo,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

概念

Dubbo

在Dubbo官网介绍到,Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题。

RPC

RPC(Remote Procedure Call)远程过程调用协议,一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议。

Dubbo架构

Dubbo基本架构由以下四个部分组成:

①提供者:提供者包括服务容器和服务提供者程序。服务容器负责启动,加载,运行服务提供者程序。服务提供者程序需要在服务启动时,向注册中心注册自己提供的服务。

②消费者:即服务消费者,是调用远程服务的消费方。消费者在启动时需要向注册中心订阅自己所需要的服务。拉取数据之后存放到本地。在远程调用时,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

③注册中心:是服务注册与发现的中心,功能是存放服务提供者列表和返回服务提供者地址列表给消费者,如果有变更,将基于长连接推送变更数据给消费者。

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

Dubbo调用流程

①Proxy:代理加了@Reference注解的成员变量,由Proxy负责接口调用逻辑。

②Cluster:负责感知提供者列表信息。

③Protocol:负责提供者和消费者之间协议交互数据。

④Service:真实的业务逻辑。被代理接口的实现类。 

我的架构

根据以上Dubbo相关概念以及逻辑图,我构思了一幅自己的架构图。按照这个来实现自己的Dubbo框架。我只留了这三部分

 根原来的架构一样,提供者负责业务逻辑,启动时向注册中心注册自己的服务;消费者负责远程调用,启动时从注册中心拉取提供者服务列表;注册中心负责存储提供者列表。

我的调用流程

因为从零开始搞,所以我把控制层调用逻辑也加上了。我的调用流程如图:

整个服务启动之后,用户发送请求调用controller,controller调用接口,接口通过代理调用服务提供者。

①Proxy:代理的是加了@Reference注解的接口。

②socket:代理通过socket向服务提供者发送交互数据,收到响应之后,把调用数据返回给接口,实现远程调用。

最后

以上就是追寻荷花为你收集整理的仿写Dubbo-初识Dubbo的全部内容,希望文章能够帮你解决仿写Dubbo-初识Dubbo所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部