序——学习如何写一个dubbo

首先,我不是大神,我是跟着大神学习如何手写一个dubbo,每次的学习都写一个学后感,增强消化。
大神文章地址:一起写个Dubbo
项目地址:rpc

dubbo最小实现

借个图:
在这里插入图片描述
rpc,就是远程调用,大意是可以想调用本服务的方法一样去调用远程的服务内容,那么他是如何实现的呢?
首先A服务需要调用到B服务一般可以通过过对方的域名采用http的方式调用对方的接口,但这样明显不是我们想要的,这里首先需要一个注册中心,将可以调用的服务(包含方法)集中保存在一个地方,供需要的服务来使用,这个地方就叫做注册中心,它主要具有服务治理的功能,为消费者与提供者协调资源。
那么要实现这个远程调用,服务端与客户端各需要做什么呢?
服务端:服务端需要将对外提供的接口注册到注册中心,这样来使用的服务才能访问到,当一个远程请求访问来时会注明将要调用的接口的类名,方法名,参数类型,参数,服务端需要反射出服务,并进行执行,将执行结果返回给客户端。
客户端:客户端里需要有服务端的接口类,客户端通过动态代理,将要访问的接口信息封装为一个特殊的请求,包含了接口名,方法名,参数类型,参数,然后传输给服务端,并等待服务端的返回。
期间采用tcp连接,将对象序列化传输。
图解
在这里插入图片描述

要实现的功能

上面的例子只是一次rpc的调用过程,那么真正需要我们实现的东西有哪些呢?
主要分为服务端、客户端和注册中心,服务端主要实现服务的注册、获取和方法的调用,客户端主要负责调用方法的封装(全限定类名+方法名+方法参数类型+方法参数)。

  • common
    – 传输协议
    – 通信工具
  • 服务端
    – 保存服务到本地
    – 获取本地的服务
    – 在注册中心注册信息
    – 调用本地服务
  • 客户端
    – 封装请求
  • 注册中心
    – nacos

大概是以上这些,下一篇文章开始详细展开。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值