zoukankan      html  css  js  c++  java
  • 用通俗的语言解释restful

    实现了REST规范的Web API就叫RESTful API。

    简单来说:就是用url定位资源,用http描述来操作资源。

    web是什么:分布式信息系统为超文本文件和其他对象(资源)提供访问入口。

    资源是web架构的关键点,需要3个操作:识别,表示,交互。uri(统一资源标识符)来识别资源,html.xml,图片,视频来表示资源,通过协议与资源交互。

    所以rest就是选择通过使用http协议和uri,对资源进行CRUD增删改查操作。

    rest协议是面向资源的,soap是面向服务的,假如要管理一些用户,使用rest协议将用户看做是一种资源:

    get  /users/{userid}  获取userid对应的user信息。     post   /users  创建一个新的user。   put  /users/{userid}  更改userid对应的user信息.

    使用soap将对用户的操作看做成服务:

    我们大部分项目中目前使用的是RPC风格的服务:

       rpc只能用服务本身提供的方法和接口与服务器交互,整个过程中,请求,响应和方法对于客户端都是不可见的,异构的客户端很难与服务器通信,也很难解析服务器的响应请求。

        restful风格的服务:

        整个过程采用http方法发生请求,数据采用标准格式,基于统一接口和通用载体,即使客户端和服务器采用不同的技术构建,也不会影响通信。

    顺便说下SOA和微服务的区别:

    SOA的提出是在企业计算领域,就是要将紧耦合的系统,划分为面向业务的,粗粒度,松耦合,无状态的服务。服务发布出来供其他服务调用,一组互相依赖的服务就构成了SOA架构下的系统。

    我们知道企业计算领域,如果不是交易系统的话,并发量都不是很大的,所以大多数情况下,一台服务器就容纳将许许多多的服务,这些服务采用统一的基础设施,可能都运行在一个应用服务器的进程中。虽然说是面向服务了,但还是单一的系统。

    微服务:

    不同的子系统采用自己的架构,那么各个服务运行自己的Web容器中,当需要增加计算能力的时候,只需要增加这个子系统或服务的实例就好了,当升级的时候,可以不影响别的子系统。这种组织方式大体上就被称作微服务架构。

    微服务与SOA相比,更强调分布式系统的特性,比如横向伸缩性,服务发现,负载均衡,故障转移,高可用。互联网开发对服务治理提出了更多的要求,比如多版本,比如灰度升级,比如服务降级,比如分布式跟踪,这些都是在SOA实践中重视不够的。

  • 相关阅读:
    洛谷 P3413 【萌数】
    ANOI 2009 【同类分布】
    概率编程语言
    人类的视觉能力基本上是出生后逐渐习得的
    关“视觉神经系统是怎么形成的?”的思考
    MIPS指令集相关
    zookeeper源码之服务端
    zookeeper服务端
    c语言之结构
    c语言之函数
  • 原文地址:https://www.cnblogs.com/hadoop-dev/p/7645994.html
Copyright © 2011-2022 走看看