手写dubbo核心

dubbo像调用本地方法一样的模式link

在这里插入图片描述

  • rpc-api
    • UserService
      • addUser(UserDTO) 操作:修改userid
    • UserDTO
    • RPCCommonReqDTO
      • String classPath
      • String methodName
      • Object[] args
  • rpc-provider
    • maven依赖api工程
    • UserServiceImpl
      • addUser(UserDTO)
    • NetServer
      • threadPool变量
      • startUp()
        • ServerSocket
      • main方法调用startUp()
    • RPCThread
      • run() ObjectStream的read(强制转换为RPCCommonReqDTO)和write 请求的读取和响应
    • ServerDispather
      • dispath
        • 封装参数args的 Class[] classType
        • 反射创建Class 获取Method 调用invoke
  • rpc-caller
    • maven依赖api工程
    • ProxyFactory
      • T getServiceInstance(Class interfaceClazz)
        • 动态代理 Proxy.newProxyInstance(ClassLoader,Class[] interfaceClazz,InvoCationHandler)
    • RPCInvoCationHandler
      • invoke 目标增强
        • new RPCCommonReqDTO 放入参数(写死/需要zk实现)
        • NetClient.callRemoteService 调用服务
    • Main
      • UserService userService = ProxyFactory.getServiceInstance
      • User user = new UserDTO
      • userService.addUser(user)
    • NetClient
      • Object callRemoteService(RPCCommonReqDTO)
        • new Socket ObjectStream的write和read
  • register-provider link
    • zkconfig zk服务ip端口
    • CuratorFramework
    • 连接zk 写数据服务注册
    • /registrys/servicename/ip:port
    • 节点 持久 临时
    • netty启动监听 IO数据交互(一个一个handler)
  • subcribe/notify-consumer
    • zkconfig zk服务ip端口
    • CuratorFramework
    • 连接zk 服务发现
    • 负载均衡
    • 调用
    • invoke netty客户端连接服务端 IO数据交互(一个一个handler)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值