• RPC与Http的区别


    一.远程调用方式

    无论是微服务还是分布式服务(都是SOA,都是面向服务编程),都面临着服务间的远程调用。那么服务间的远程调用方式有哪些呢?

    常见的远程调用方式有以下几种:

      • RPC:Remote Produce Call远程过程调用,类似的还有RMI(Remote Methods Invoke 远程方法调用,是JAVA中的概念,是JAVA十三大技术之一)。自定义数据格式,基于原生TCP通信,速度快,效率高。早期的webservice,现在热门的dubbo,都是RPC的典型

        • RPC的框架:webservie(cxf)、dubbo
        • RMI的框架:hessian
      • Http:http其实是一种网络传输协议,基于TCP,规定了数据传输的格式。现在客户端浏览器与服务端通信基本都是采用Http协议。也可以用来进行远程服务调用。缺点是消息封装臃肿。

        现在热门的Rest风格,就可以通过http协议来实现。

        • http的实现技术:HttpClient
      • 相同点:底层通讯都是基于socket,都可以实现远程调用,都可以实现服务调用服务

      • 不同点:
        RPC:框架有:dubbo、cxf、(RMI远程方法调用)Hessian
        当使用RPC框架实现服务间调用的时候,要求服务提供方和服务消费方 都必须使用统一的RPC框架,要么都dubbo,要么都cxf

        跨操作系统在同一编程语言内使用
        优势:调用快、处理快

        http:框架有:httpClient
        当使用http进行服务间调用的时候,无需关注服务提供方使用的编程语言,也无需关注服务消费方使用的编程语言,服务提供方只需要提供restful风格的接口,服务消费方,按照restful的原则,请求服务,即可

        跨系统跨编程语言的远程调用框架
        优势:通用性强

        总结:对比RPC和http的区别
        1 RPC要求服务提供方和服务调用方都需要使用相同的技术,要么都hessian,要么都dubbo
        而http无需关注语言的实现,只需要遵循rest规范
        2 RPC的开发要求较多,像Hessian框架还需要服务器提供完整的接口代码(包名.类名.方法名必须完全一致),否则客户端无法运行
        3 Hessian只支持POST请求
        4 Hessian只支持JAVA语言

    •  Netty 是一个基于 NIO 的网络编程框架,使用 Netty 可以帮助你快速、简单的开发出一个网络应用,相当于简化和流程化了 NIO 的开发过程。

    • Netty和Tomcat有什么区别?

      Netty和Tomcat最大的区别就在于通信协议,Tomcat是基于Http协议的,他的实质是一个基于http协议的web容器,但是Netty不一样,他能通过编程自定义各种协议,因为netty能够通过codec自己来编码/解码字节流,完成类似redis访问的功能,这就是netty和tomcat最大的不同。

  • 相关阅读:
    利用正则表达式去掉html代码
    TYPE='application/xshockwaveflash'
    SQL存储过程事务和优化方法(包括查询方式语句结合)
    C#中Bitmap类实现对图像操作的一些方法
    回首往事,碩果累累,展望未來,信心滿懷。
    此方法用于确认用户输入的不是恶意信息
    js去除字符串中的空格
    SQLServer存储过程中的简单事务处理
    SQL 2000中行加入序号用法
    C#中将byte数组转换为8bit灰度图像
  • 原文地址:https://www.cnblogs.com/lgg20/p/15911292.html
Copyright © 2020-2023  润新知