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

导读:本篇文章讲解 RPC框架性能优化思路和具体实现,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

RPC框架性能优化思路

动态代理对比

序列化框架对比

线程模型

路由层性能

RPC是什么?

应用场景

RPC 优点

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

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


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

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

RPC框架性能优化思路

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 ,主要解决了分布式系统中,服务与服务之间的调用问题。

RPC 优点

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

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

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

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

RPC 架构主要包括三部分:

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/92786.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!