99-Concept(9)
representational 英 [ˌreprɪzenˈteɪʃənl] adj. 代表的;具象派的
1. RPC
- 花了一个星期,我终于把RPC框架整明白了!
- 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交互方案中
- REST,Web2.0的兴起
- SOAP(Simple Object Access protocol,简单对象访问协议)
- XML-RPC更加简单明了
优点:
- 轻量级的Web Service架构风格
- 可以利用缓存Cache来提高响应速度
- 性能、效率和易用性上都优于SOAP协议
基于REST的软件体系结构风格(Software Architecture Style)称之为面向资源体系架构(Resource-oriented Architecture,ROA)
1. restful特点
- 每一个URI代表1种资源;
- 客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
- 通过操作资源的表现形式来操作资源;
- 资源的表现形式是XML或者HTML;
- 客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。
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