• 高性能RPC框架选型


    架构师进行高性能RPC框架选型时,主要考虑以下因素:

    1、I/O调度模型

    同步阻塞I/O(BIO)还是非阻塞I/O(NIO)。这个比较好理解。

    2、序列化框架

    文本协议、二进制协议或压缩二进制协议。这句话是网上经常看到的,但其实表述很不完整。之前初学时有人问,JSON文本传输时不也是二进制么,当时就懵了。文本协议如JSON将整个消息作为文本传输,而像ProtoBuf会针对每个属性区分,如int类型属性传输时只需分配4个字节,byte类型只需分配1个字节,而JSON都作为文本考虑兼容中文就是两个字符16个字节,所以降低了传输packet大小。同时ProtoBuf采用了类似网络协议TLV的机制,非常方便反序列化,而JSON就得去解析文本格式,哪里是冒号逗号啥的。

    3、线程调度模型

    高性能RPC肯定是多线程,这点其实主要指的是传统多线程还是如AKKA无锁的Actor模型机制。

    4、承载的通道协议

    通道协议主要考虑两方面,一个是性能,如HTTP2比HTTP做了很多优化,如头部压缩,通路复用等;还有一个是安全,如SSH或HTTPS或TCP + TLS。

    除了上面4点外,还可以考虑IDL(接口定义语言),这点一般所有RPC框架都会提供很灵活的接口定义能力;还有就是框架是否提供多语言版本如Java、C等,这对多语言子系统间RPC很有用。

    目前业内常见的RPC框架有REST调用、GRPC/Thrift(国外)、Dubbo/BRpc(国内)、RMI/Webservice(淘汰)等,推荐使用谷歌的GRPC,很稳定(ProtoBuf已经用了很多年了),性能好,生态好,社区也很活跃。

  • 相关阅读:
    python中深浅复制教程
    jquery easyui打开新的tab实现遮罩效果
    经典逻辑题 百人戴帽子问题
    JAVA反射机制示例 简单的Ioc实现
    Java研修录003标识符
    应该怎么管理程序员?
    内网VSFTP服务器的搭建
    如何彻底关闭WIN10防火墙
    使用 Visual Studio 调试器附加到正在运行的进程
    Qt+VS2019 英文翻译
  • 原文地址:https://www.cnblogs.com/yuzhengzhong/p/10090509.html
Copyright © 2020-2023  润新知