Rest和RPC

最近在面试过程中被问到好多次,现在想想答的都不怎么正确。其实还是自己理解的不到位,总结一下,欢迎指正。

定义

# Restful
英文全称为 Representational State Transfer,即表述性状态传递。
1. 面向资源-URL即资源
2. 使用HTTP协议
3. 使用HTTP动词(GET、POST、PUT、DELETE等)来实现资源的添加,修改,删除等操作。即通过HTTP动词来实现资源的状态扭转
    1)  GET    用来获取资源,
    2)  POST  用来新建资源(也可以用于更新资源),
    3)  PUT    用来更新资源,
    4)  DELETE  用来删除资源
4. Server和Client之间传递某资源的一个表现形式,不限制格式,xml、json等

# RPC
即远程过程调用,调用远程计算机上的服务,就像调用本地服务一样。也就是A服务器调用B服务器的方法的过程。
1. 调用原理
    * 服务消费方(client)调用以本地调用方式调用服务;
    * client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;
    * client stub找到服务地址,并将消息发送到服务端;
    * server stub收到消息后进行解码;
    * server stub根据解码结果调用本地的服务;
    * 本地服务执行并将结果返回给server stub;
    * server stub将返回结果打包成消息并发送至消费方;
    * client stub接收到消息,并进行解码;
    * 服务消费方得到最终结果。
RPC的目标就是要2~8这些步骤都封装起来,让用户对这些细节透明。 
2. 需要解决的问题
 * 通讯,可以使用HTTP、TCP(速度快,目前框架多是它)
 * 服务寻址
 * 序列化,hession是种系列化组件
 * 负载均衡

Rest和RPC

  1. 目前的RPC框架
    • Hession,除了hessian协议之外,还提供了通过servlet方式实现的RPC框架
    • Dubbo
    • Netty
      ..

      区别

      RPC是以动词为中心的, REST是以名词为中心的, 此处的 动词指的是一些方法, 名词是指资源.

转载于:https://blog.51cto.com/liusw94/2064744

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值