架构-RPC传输之道

你不应该以自己当前的状况为导向,而应该以你想要获得的状况为导向。

RPC(Remote ProcedureCall),即远程过程调用,通过网络实现两个服务器之前的调用,RPC是跨越传输层和应用层。

RPC的调用过程:

客户端端发起一个RPC请求,本地调用client stub负责将调用的接口、方法和参数按照事先约定好的协议进行序列化,然后由RPC框架的RPCRuntime实例通过socket传输到远程服务器上,远程服务器端RPCRuntime收到实例后在通过server stub进行反序列化,发起最终的method调用。

比较优秀的RPC开源框架:

国内Dubbo、Motan,国外Thrift、gRPC

从以下方面理解RPC的实现原理:

1、动态代理:代理就是要做一件事,不用亲自去做,找一个代理代做,动态是指可以动态指定执行的方法及任务数。

2、反射:是指计算机程序在运行时可以访问、检测和修改它本身状态或行为的一种能力。传入远程服务名和方法名,通过反射自动定位到需要被调用的方法,再传入入参,从而进行RPC调用。

3、序列化:将内存中的数据体转换为字节流,反序列化是将字节流转换为数据体。

4、网络编程:RPC一般以TCP协议为基础。

服务RPC请求异常的定位方法:

第1步、分析网络情况,查看是否延迟严重,是否存在TCP重传。

第2步、分析服务端和调用端的运行情况,查看是否压力较大,比如CPU使用率、CPU负载、内存占用大小等

第3步、查看传输对象是否很大很复杂,这对序列化影响很大。

第4步、如果服务端有队列,可以试着减少队列,或者改为固定线程池,减少线程池数量。

第5步、控制CPU不用使用太高,尽量不要超过80%,有个计算公式(核数*7)然后去百分比,eg:4c的容器,那么2.8%的使用率属于正常水平,当达到80%可能有线程阻塞。

本文分享自微信公众号 - 大数据与微服务架构(gh_7bc8d3796e8e),作者:凹谷

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 大数据工作流Oozie

    因为工作需要用到oozie,但是网上的资料越看越迷茫,经过很大的努力,终于折腾清楚了,这里,做一个总结,帮助后来者更好地进行入门,当然,粗鄙之言,难免疏漏...

    凹谷
  • ElasticSearch集群调优

    放权那些别人都能做的事情,把空出来的时间集中用在收入丰厚的活动上。放权其它无用的事情,将时间用来定位自己。

    凹谷
  • 数据挖掘与建模

    数据挖掘是基于统计学原理,利用机器学习中的算法工具实现价值信息的发现。机器学习是一种实现人工智能的方法,深度学习是实现机器学习的一种技术。

    凹谷
  • RPC框架是啥?

    在我刚刚了解分布式的时候,经常对RPC和分布式有些混淆,甚至一直以为两者对等,所以我们先看看他们有什么区别?

    Java猫说
  • rpc思维导图,让rpc不再难懂

    解析 RPC(Remote Procedure Call),远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 ? 在O...

    java思维导图
  • RPC(一)

    The past has no power over the present moment.

    小闫同学啊
  • 【读书笔记】1.1-基于TCP协议的RPC

    1.1.1RPC名词解释 概念 全称Remote Process Call,即远程过程调用 rpc的实现包括服务的调用方和服务的提供方 过程 服务调用方发送RP...

    java思维导图
  • 阿里首席架构师科普RPC框架

    RPC概念及分类 RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系...

    Java架构
  • 刷题外传之深入浅出 RPC

    无论是 Leetcode 和层出不穷的 Online Judge, 核心是帮助大家锻炼 Coding 和解算法题的能力。 刷题非常有用,如刷题时代的困局所述,未...

    包子面试培训
  • RPC框架设计和调用详解

    RPC是远程调用过程的简写,是一个协议,处于网络通信协议的第五层:会话层,其下就是TCP/IP协议,在建立在其基础上的通信会话协议。RPC定义了交互的模式,而...

    lyb-geek

扫码关注云+社区

领取腾讯云代金券