当前位置: 首页 > news >正文

手写RPC总结篇

在这里插入图片描述
协议制定:client到server做交互的通信协议,比如request response 网络端点peer

难点1 : Jetty嵌入

◆jetty Server
◆ServletContextHandler
◆ServletHolder

  • jetty server 起到网络监听的作用
  • ServletContextHandler注册到jetty server中
  • ServletHolder托管servlet
  • 具体数据的接收和写回都是在servlet里做的
  • 基于servlet做的网络处理

难点2 :动态代理

◆Proxy.newProxyInstance (创建动态代理对象)
◆RemoteInvoker implements InvocationHandler (最关键的是实现invoke()方法—调用了哪些方法,传递了哪些参数。通过二进制发送request对象,远程会返回一个response对象)

不足和展望:
安全性:

身份信息校验没做,https比http多了安全控制

序列化安全加密,建立网络连接时做身份验证

服务端处理能力:

server的transport是基于jetty做的,jetty本身是有线程池处理client请求的, 线程池最好自己做, 返回数据的通道最好做成队列形式。

注册中心:

对RPC锦上添花,起到对server地址的注册,client能够通过这个注册中心自动的去发现server的地址。

集成能力:

和其他框架的嵌入结合,比如springboot结合,比如做一个springboot starter,让他自动的创建server或client

bean factory自动创建代理对象。

基于redis实现的注册中心

更多负载均衡算法的实现

项目名称:基于Java语言实现的RPC框架

项目描述:

  • 实现轻量级RPC框架,使得客户端可以通过网络从远程服务端程序上请求服务
  • 注册中心部分使用Redis实现注册、订阅功能(可选)
  • 在客户端实现了基于一致性哈希算法的负载均衡(可选)
  • 动态代理部分使用JDK动态代理
  • 网络传输部分使用Http协议进行传输
http://www.lryc.cn/news/93541.html

相关文章:

  • c++11 标准模板(STL)(std::ios_base)成员类型与常量
  • 我用 ChatGPT 写 2023 高考语文作文:全国卷(一)
  • 4.java转义符,javadoc 标签
  • PinYin4j库的使用
  • 日志框架 --- Logback
  • QML 与 Python 交互
  • React基础教程(三):JSX语法
  • 软件测试岗位都是女孩子在做吗?
  • ARP协议,带你了解ARP协议
  • 基于Java汽车客运站管理系统设计实现(源码+lw+部署文档+讲解等)
  • 0203使用规则-索引-MySQL
  • LVS+Keepalived群集
  • 抖音矩阵系统源代码开发部署--源码搭建
  • 如何用Jmeter进行接口测试 ,这应该是全网最详细的教程了
  • C语言---malloc(0)会产生什么结果,真的是空指针吗?
  • 建模助手618 | 谁不囤点Revit插件我都会生气!
  • 【“职场程序员是否会保护自己的隐私?为何要求程序员之间保密薪资?”】
  • 企业工程管理系统源码之提高工程项目管理软件的效率
  • 创新指南 | 推动销售的17个可落地的集客式营销示例
  • ASEMI代理光宝光耦LTV-0314的应用与优势
  • Apikit 自学日记: Apikit 如何发起测试
  • python-glob模块_表格及代码样例
  • GitHub Copilot 最全安装、使用
  • C语言 指针(特别篇)
  • 【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(5月26日论文合集)
  • 网络编程与自动化(python)
  • 有趣的数学 对称/非对称加密简史及数学原理一览
  • AI大模型落地不远了!首个全量化Vision Transformer的方法FQ-ViT(附源代码)
  • YouTubeDNN
  • 面向对象的介绍和内存