RPC框架性能优化思路和具体实现

本文探讨了RPC框架的性能优化策略,包括动态代理、序列化框架的选择、线程模型和路由层的影响。同时,解释了RPC的概念、应用场景和优势,并介绍了编写RPC框架所需的知识,如服务注册中心、服务提供者和服务消费者的交互。此外,还提供了相关资源链接以供深入学习。
摘要由CSDN通过智能技术生成

目录

RPC框架性能优化思路

动态代理对比

序列化框架对比

线程模型

路由层性能

RPC是什么?

应用场景

RPC 优点

写RPC框架需要具备哪些知识?

RPC原理(摘自:什么情况下使用 RPC ? - 知乎)


欢迎加入RPC学习分享(Java)社区~

https://bbs.csdn.net/forums/RPC_Study?typeId=112251

RPC框架性能优化思路

RPC的调用流程如下,可以在动态代理,序列化框架,路由算法,线程模型,服务器性能等几部分考虑。

动态代理对比

2种动态代理方式的性能测试(JDK1.8 JDK > Cglib)_trigger333的博客-CSDN博客

序列化框架对比

序列化方式介绍和性能比较 (kryo fastjson hessian jdk)_trigger333的博客-CSDN博客

线程模型

RPC框架业务线程池的添加方法和作用_trigger333的博客-CSDN博客

路由层性能

RPC是什么?

RPC是远程过程调用(Remote Procedure Call)的缩写形式。通俗的理解就是我调用了一个函数func(args), 只不过这个func不在本地,需要远程访问这个函数,把我的args(输入参数)通过网络发送给这个函数所在的机子,然后由这个机子调用func(args),再将返回值通过网络发送回来。

应用场景

 摘自:什么情况下使用 RPC ? - 知乎

其实如果我们开发简单的应用,是用不着 RPC的。当我们的应用访问量增加和业务增加时,发现单机已无法承受,此时可以根据不同的业务(划分清楚业务逻辑)拆分成几个互不关联的应用,分别部署在不同的机器上,此时可能也不需要用到 RPC 。

随着我们的业务越来越多,应用也越来越多,应用与应用相互关联调用,发现有些功能已经不能简单划分开,此时可能就需要用到 RPC。

比如,我们开发电商系统,需要拆分出用户服务、商品服务、优惠券服务、支付服务、订单服务、物流服务、售后服务等等,这些服务之间都相互调用,这时内部调用最好使用 RPC ,同时每个服务都可以独立部署,独立上线。

也就说当我们的项目太大,需要解耦服务,扩展性强、部署灵活,这时就要用到 RPC ,主要解决了分布式系统中,服务与服务之间的调用问题。

RPC 优点

  • 跨语言(C++、PHP、Java、Python ...)
  • 协议私密,安全性较高
  • 数据传输效率高
  • 支持动态扩展

写RPC框架需要具备哪些知识?

RPC原理(摘自:什么情况下使用 RPC ? - 知乎

RPC 架构主要包括三部分:

  • 服务注册中心(Registry),负责将本地服务发布成远程服务,管理远程服务,提供给服务消费者使用。
  • 服务提供者(Server),提供服务接口定义与服务实现类。
  • 服务消费者(Client),通过远程代理对象调用远程服务。

服务提供者启动后主动向服务注册中心(Registry)注册机器IP、端口以及提供的服务列表;

服务消费者启动时向服务注册中心(Registry)获取服务提供方地址列表。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

trigger333

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值