IT评测·应用市场-qidao123.com

标题: RESTful架构与RPC架构 [打印本页]

作者: 泉缘泉    时间: 2024-10-5 12:59
标题: RESTful架构与RPC架构
RESTful架构与RPC架构

在RESTful架构中,关注点在于资源,操作资源时利用标准方法检索并操作信息片断,在RPC架构中,关注点在于方法,调用方法时将像调用本地方法一样调用服务器的方法。
RESTful架构

REST即表述性状态传递Representational State Transfer,是一种软件架构风格,也可以称作是一种设计API的模式,REST通过HTTP协议定义的通用动词方法GET、POST、PUT、DELETE,以URI对网络资源举行唯一标识,相应端根据请求端的差别需求,通过无状态通讯,对其请求的资源举行表述,符合REST设计规范的架构就称为RESTful架构。
主要原则


统一资源接口

安全性是指访问REST接口时不会对服务端资源状态发生改变。
幂等性是指对于同一REST接口的URI多次访问时,得到的资源状态是相同的。

实例


RPC架构

RPC即远程过程调用Remote Procedure Call,简单的理解是一个节点请求另一个节点提供的服务,远程过程调用,是相对于本地过程调用来说的,当调用方法时就像调用本地方法一样调用远程服务器的方法,做到了轻量、无感知通讯。
结构组成


通讯过程

  1. 客户端
  2. 1. 将这个调用映射为Call Id
  3. 2. 将这个Call Id与参数等序列化,以二进制形式打包
  4. 3. 将序列化数据包通过网络通信发送到服务端
  5. 4. 等待服务端响应
  6. 5. 服务端调用成功并返回结果,反序列化后进行下一步操作
  7. 服务端
  8. 1. 在本地维护一个Call Id的Map,用以保证Id与调用方法的对应
  9. 2. 等待客户端请求
  10. 3. 得到一个请求后,将数据包反序列化,得到Call Id与参数等
  11. 4. 通过Map寻找Call Id所对应的函数指针
  12. 5. 通过函数指针调用函数,并将数据包反序列化后的参数传递,得到结果
  13. 6. 将结果序列化之后通过网络通信返回到客户端
  14. 注:
  15. 此处的客户端指的是本地调用者,也可以是一台服务器
  16. 此处的服务端指的是被调用者,也可以是一台服务器
  17. 数据包通信时无论是使用socket进行TCP传输,或使用HTTP进行传输都是可行的
复制代码
相关比较


每日一题

  1. https://github.com/WindrunnerMax/EveryDay
复制代码
参考

  1. https://www.jianshu.com/p/7d6853140e13
  2. https://www.jianshu.com/p/ee92c9accedd
  3. https://www.zhihu.com/question/28570307
  4. https://www.zhihu.com/question/25536695
  5. https://www.runoob.com/w3cnote/restful-architecture.html
  6. https://blog.csdn.net/bieleyang/article/details/76272699
  7. https://blog.csdn.net/u014590757/article/details/80233901
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4