分布式RPC框架

fastCall是一个Java实现的分布式RPC框架,基于netty+zookeeper,设计灵感来源于gRPC和dubbo。已实现包括客户端、服务端、注册中心的基础功能,采用protobuf进行序列化,并实现了最小活跃数负载均衡和服务器流量监控。未来计划加入服务治理监控中心,支持RESTful API等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、fastCall基本介绍

  1. fastCall是一个基于Java语言的分布式RPC框架demo,供RPC初学者学习使用
  2. fastCall框架目前基于netty+zookeeper实现
  3. fastCall的设计架构主要参考了gRPC以及dubbo,分为客户端、服务端和注册中心,未来可能会加入服务治理监控中心,以及支持Restful API

二、fastCall RPC分布式框架的实现基础

  1. Call ID映射,在远程调用的过程中,每个方法都需要对应一个具有唯一性的ID,这个ID在客户端和服务端中都是唯一确定的,客户端在做远程调用时必须附上这个ID,fastCall框架使用方法签名作为ID
  2. 序列化和反序列化,在参数传递和结果返回的过程中需要将传输的数据进行序列化和反序列化,以字节流的形式进行传输,fastCall采用protocol buffer作为序列化方式
  3. 网络传输,使用一套网络传输协议进行网络传输,例如HTTP、TCP、UDP等,fastCall采用netty框架实现网络传输
  4. 分布式实现,fastCall采用ZooKeeper作为注册中心实现分布式,分布式集群中的所有服务都要在ZooKeeper中进行注册,向ZooKeeper提供IP地址、端口等一系列信息,当发送方发送请求时,会从ZooKeeper注册中心中获取服务提供方的IP、端口,再向服务提供方请求服务

三、目前已完成

  1. client、server、callcenter(注册中心)的基本功能实现
  2. 基于protobuf的序列化传输
  3. 最小活跃数负载均衡算法
  4. 服务器流量监控

四、未来待完成

  1. 基于事件响应的end point状态监控
  2. 扩展负载均衡算法
  3. 注册中心与服务治理监控中心解耦
  4. side car模式
  5. restful gateway
  6. 限流削峰工具
  7. 分布式锁

五、其他

  1. 该框架由我本人在携程集团实习期间业余时间编写,希望有更多的小伙伴能够一起交流技术心得,一起学习进步
  2. GitHub仓库地址:https://github.com/HelloWorld-Ian/fastCall
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值