仿写Dubbo-初识Dubbo

Dubbo是一个RPC服务开发框架,解决微服务架构下的服务治理问题。它包括提供者、消费者、注册中心和监控中心四部分。提供者向注册中心注册服务,消费者订阅并调用这些服务。调用流程涉及代理、集群和协议交互。作者构建了一个简化版的Dubbo架构,保留了提供者、消费者和注册中心,通过代理和socket实现远程调用。
摘要由CSDN通过智能技术生成

概念

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向服务提供者发送交互数据,收到响应之后,把调用数据返回给接口,实现远程调用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值