写点什么

985 研究生入职电网 6 个月,牛客网面经下载,血与泪的总结

用户头像
极客开源
关注
发布于: 刚刚

什么是 RPC?RPC 原理是什么?

什么是 RPC?

RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。比如两个不同的服务 A、B 部署在两台不同的机器上,那么服务 A 如果想要调用服务 B 中的某个方法该怎么办呢?使用 HTTP 请求 当然可以,但是可能会比较慢而且一些优化做的并不好。 RPC 的出现就是为了解决这个问题。

RPC 原理是什么?


  1. 服务消费方(client)调用以本地调用方式调用服务;

  2. client stub 接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;

  3. client stub 找到服务地址,并将消息发送到服务端;

  4. server stub 收到消息后进行解码;

  5. server stub 根据解码结果调用本地的服务;

  6. 本地服务执行并将结果返回给 server stub;

  7. server stub 将返回结果打包成消息并发送至消费方;

  8. client stub 接收到消息,并进行解码;

  9. 服务消费方得到最终结果。


下面再贴一个网上的时序图:


RPC 解决了什么问题?

从上面对 RPC 介绍的内容中,概括来讲 RPC 主要解决了:让分布式或者微服务系统中不同服务之间的调用像本地调用一样简单。

常见的 RPC 框架总结?

  • RMI(JDK 自带):?JDK 自带的 RPC,有很多局限性,不推荐使用。

  • Dubbo:?Dubbo 是 阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。目前 Dubbo 已经成为 Spring Cloud Alibaba 中的官方组件。

  • gRPC?:gRPC 是可以在任何环境中运行的现代开源高性能 RPC 框架。它可以通过可插拔的支持来有效地连接数据中心内和跨数据中心的服务,以实现负载平衡,跟踪,运行状况检查和身份验证。它也适用于分布式计算的最后一英里,以将设备,移动应用程序和浏览器连接到后端服务。

  • Hessian:?Hessian 是一个轻量级的 remotingonhttp 工具,使用简单的方法提供了 RMI 的功能。 相比 WebService,Hessian 更简单、快捷。采用的是二进制 RPC 协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

  • Thrift:?Apache Thrift 是 Facebook 开源的跨语言的 RPC 通信框架,目前已经捐献给 Apache 基金会管理,由于其跨语言特性和出色的性能,在很多互联网公司得到应用,有能力的公司甚至会基于 thrift 研发一套分布式服务框架,增加诸如服务注册、服务发现等功能。

Kafka 实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图



  • Kafka 入门

  • 为什么选择 Kafka

  • Karka 的安装、管理和配置



  • Kafka 的集群

  • 第一个 Kafka 程序


afka 的生产者



  • Kafka 的消费者

  • 深入理解 Kafka

  • 可靠的数据传递




  • Spring 和 Kalka 的整合

  • Sprinboot 和 Kafka 的整合

  • Kafka 实战之削峰填谷

  • 数据管道和流式处理(了解即可)



  • Kafka 实战之削峰填谷



本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

用户头像

极客开源

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
985研究生入职电网6个月,牛客网面经下载,血与泪的总结