99-Concept(9)

representational 英 [ˌreprɪzenˈteɪʃənl] adj. 代表的;具象派的

1. RPC

  • 花了一个星期,我终于把RPC框架整明白了!open in new window
  • RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想
  • RPC是一种技术思想而非一种规范或协议,常见RPC技术和框架有:
    • 应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。
    • 远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。
    • 通信框架:MINA 和 Netty。

目前流行的开源 RPC 框架还是比较多的,有阿里巴巴的 Dubbo、Facebook 的 Thrift、Google 的 gRPC、Twitter 的 Finagle 等

  • gRPC:是 Google 公布的开源软件,基于的 HTTP 2.0 协议,并支持常见的众多编程语言。RPC 框架是基于 HTTP 协议实现的,底层使用到了 Netty 框架的支持。
  • Thrift:是 Facebook 的开源 RPC 框架,主要是一个跨语言的服务开发框架。用户只要在其之上进行二次开发就行,应用对于底层的 RPC 通讯等都是透明的。不过这个对于用户来说需要学习特定领域语言这个特性,还是有一定成本的。
  • Dubbo:是阿里集团开源的一个极为出名的 RPC 框架,在很多互联网公司和企业应用中广泛使用。协议和序列化框架都可以插拔是极其鲜明的特色。

2. URI/URL

  • URI(Uniform Resource Identifier):统一资源标志符
    • 例:身份证号才是URI,通过身份证号能让我们能且仅能确定一个人。
  • URL(Uniform Resource Locator):统一资源定位符,URI的一个子集
    • 例:动物住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三

所以不论是用定位的方式还是用编号的方式,都可以唯一确定一个人,都是URl的一种实现,而URL就是用定位的方式实现的URI

  • 而URL则通过描述是哪个主机上哪个路径上的文件来唯一确定一个资源,也就是定位的方式来实现的URI。

3. B/S C/S

  • B/S结构(Browser/Server):浏览器/服务器这种开发模式
  • C/S结构(Client/Server):客户端/服务器模式

4. soap

  • SOAP(Simple Object Access Protocol):简单对象访问协议
  • 复杂的、重量级的协议
  • 无缓存,URI本质上除了用来指示SOAP服务器外,本身没有任何意义
  • SOAP = HTTP post + XML
  • 是http post专用版本

5. rest

  • REST(Representational State Transfer)表述性状态传递
  • RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。

主流的三种Web Server交互方案中

  1. REST,Web2.0的兴起
  2. SOAP(Simple Object Access protocol,简单对象访问协议)
  3. XML-RPC更加简单明了

优点:

  1. 轻量级的Web Service架构风格
  2. 可以利用缓存Cache来提高响应速度
  3. 性能、效率和易用性上都优于SOAP协议

基于REST的软件体系结构风格(Software Architecture Style)称之为面向资源体系架构(Resource-oriented Architecture,ROA)

1. restful特点

  1. 每一个URI代表1种资源;
  2. 客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
  3. 通过操作资源的表现形式来操作资源;
  4. 资源的表现形式是XML或者HTML;
  5. 客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。

2. OTT

  • OTT(Over The Top的缩写)
  • 指通过互联网向用户提供各种应用服务。这种服务由运营商之外的第三方提供,不少服务商直接面向用户提供服务和计费,使运营商沦为单纯的“传输管道”。

6. http

  • HTTP(Hyper Text Transfer Protocol):超文本传输协议

7. SMTP

  • 简单邮件传输协议

8. feign

  • Feign 是一个声明式的伪RPC的REST客户端

9. jwt

  • https://www.jianshu.com/p/576dbf44b2ae
  • https://zhuanlan.zhihu.com/p/86937325