美文网首页
分布式系统之 RPC

分布式系统之 RPC

作者: 技术与健康 | 来源:发表于2020-08-17 21:45 被阅读0次

RPC模型
RPC 比较有影响的论文就是1984年发表的 Implementing Remote Procedure Calls. 有五个核心概念。
1.user(客户端)------>UserStub----->RPCRuntimes ---->RPCRuntimes--->ServerStub--->Server
2.user(客户端)<------UserStub<-----RPCRuntimes <----RPCRuntimes<---ServerStub<---Server
一个完整的RPC调用,核心是通信,序列化和透明化调用.可以参考通信序列化。 剩下就是透明化调用。

Java远程方法调用
远程方法调用(Remote Method Invocation,RMI),它与论文的流程相似,增加了RMI Registry的概念,进而实现了 客户端和服务端通过Registry来注册服务和寻找服务的调用方式,让客户端和服务端的调用变的透明。

缺点:性能低(JRMP协议采用阻塞模型,原生的序列化方方案),缺少服务治理,不支持异构语言。

异构语言框架gRPC
gRPC是google 开源的一款对语言和平台中立的高性能 RPC框架,,基于http2,支持单连接多路复用,在移动设备上可以节省流量和耗电量。
gRPC服务端的启动代码和 Netty相似,其实其java版本就是使用了Netty作为底层通信框架。

Dubbo
ubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 [1] Spring框架无缝集成。
Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现

  • Provider
    暴露服务方称之为“服务提供者”。
  • Consumer
    调用远程服务方称之为“服务消费者”。
  • Registry
    服务注册与发现的中心目录服务称之为“服务注册中心”。
  • Monitor
    统计服务的调用次数和调用时间的日志服务称之为“服务监控中

总结:RMI已经不再适用,Dubbo性能极高,支持多种通信和序列化协议,还支持服务治理。但是有些重。另外Restful API性能较弱,java开发实际中可以采用Netty+Kryo的通信和序列化组合自行实现通信框架也是不错的。

相关文章

  • Spark RPC通信

    Spark RPC通信,参考文章: 深入解析Spark中的RPC spark 分布式的基础-通信系统 rpc Sp...

  • 分布式系统之 RPC

    RPC模型RPC 比较有影响的论文就是1984年发表的 Implementing Remote Procedure...

  • 分布式消息通信及流行MQ框架

    分布式系统消息通信技术简介 分布式系统消息通信技术主要包括:RPC(Remote Procedure Call P...

  • #goCode#rpc简单实现

    什么是rpc RPC:Remote Procedure Call 远程过程调用,解决分布式系统中服务调用问题,能够...

  • 初识RPC

    RPC 是什么 RPC 是远程过程调用(Remote Procedure Call)的简称,是分布式系统中不同节点...

  • RPC 初识

    RPC是什么 RPC(Remote Procedure Call) 释义是远程过程调用,常存在于分布式系统中。 比...

  • 高并发分布式技术都不懂,你拿什么跳槽

    4.1 高并发分布式技术专题 - 分布式开发技术 4.1.1 RPC 4.1.2 分布式系统指挥官Zookeepe...

  • 高并发分布式技术都不懂,你拿什么跳槽

    4.1 高并发分布式技术专题 - 分布式开发技术 4.1.1 RPC 4.1.2 分布式系统指挥官Zookeepe...

  • 基于hessian和netty的RPC框架设计和实现

    一:概述 对系统进行服务化改造,或者构建一个分布式系统,RPC是核心的组件,目前主流的RPC框架有hessian...

  • 分布式

    每秒处理10万高并发订单的某集团支付系统架构分享分布式系统中的死锁处理分布式系统常用技术栈 nginx, rpc,...

网友评论

      本文标题:分布式系统之 RPC

      本文链接:https://www.haomeiwen.com/subject/kkrcjktx.html