• feifei
    2018-08-03
    在讨论 RESTful 模型的时候,举了一个库存的例子,但是这种方法有很大问题,那你知道为什么要这样设计吗?

    此方法的问题在于,不是解决问题,而是将数据状态进行了转移,将状态交给存储,这样业务将可以无状态化运行,这种设计可以很好的解决扩展的问题,因为无状态,可以进行负载均衡!使用集群化来解决单机的问题。

    基于文本的 RPC 虽然解决了二进制的问题,但是它本身也有问题,你能举出一些例子吗?

    1,效率问题,程序与文本之间转换效率低,因而不适合内部大数据交换,因为文本利用阅读,对外采用较好

    2,相比于二进制rpc,传输需要的带宽更大,二进制的rpc因为可以使用专用的客户短和服务器代码,可以更好的压缩数据,以提供更大的吞吐量
    展开
    
     25
  • kuzan
    2018-08-08
    crud的语义离业务有点远,客户端往往不想关心crud,客户端关注的语义是业务,比如审批、下单,添加好友。感觉用http这几个method做语义就把服务变成了dao,一个贫血服务
     1
     7
  • fsj
    2018-08-08
    没有restful api之前的json api 是什么样子的?感觉对于客户端同学,不了解之前是什么样子,很难体会到restful api的有点。
    
     6
  • Jay
    2018-08-06
    题目1:
    库存的问题是:存在并发,导致库存可能为负值。
    用Restful来进行无状态的访问,库存量即状态由业务层来解决。
    题目2:
    用文本来进行RPC的请求和响应,占用的字节数大。
    
     6
  • 阿痕
    2018-08-03
    能不能谈谈dubbo和springcloud在服务发现方面的优缺点?
    
     6
  • 扬~
    2018-11-10
    文本传输最终都会转化为二进制流啊,为什么文本要比二进制rpc占用带宽?

    作者回复: 数字2如果用int传输用几个bit,如果是字符串呢?

    
     5
  • blackpiglet
    2018-08-07
    第一题,我的理解是,资源最终还是有状态的,所以 rest 方式,是把状态转移到了数据库和客户端。那么数据库的抗压能力和稳定性就非常重要了,这也是为什么最近有这么多内存数据库和键值数据库的原因。另外客户端有状态也会造成很多麻烦,毕竟这是不受开发人员控制的,如果逻辑没有切割清楚,升级会非常痛苦。
    第二题,能想到的主要是性能的损耗,毕竟传输的内容更多了,单位带宽下能传输的信息总量会有明显下降。
    
     3
  • 起风了001
    2019-05-24
    文本传输最终都会转化为二进制流啊,为什么文本要比二进制rpc占用带宽?
    
    1
    2018-11-10
    作者回复: 数字2如果用int传输用几个bit,如果是字符串呢?

    这个有点疑问, 用int传输需要32或者64位; 字符串的话, 看编码, 如果是utf8编码的话, 还是1个字节8bit即可表示.....
    展开

    作者回复: int当然不会用32位编码呀

     2
     2
  • jonhey
    2019-02-18
    看到这里,强烈建议老刘基于此教程,丰富一下内容,写本书,估计能成为网络、云计算、网络编程、微服务领域集大成的经典教材

    作者回复: 不敢不敢

    
     2
  • vic
    2018-12-04
    楼上那位,登陆动作可以看作是对session的CRUD操作
    
     2
  • leohuachao
    2018-09-04
    我觉得RESTFul架构流行,也得益于前端框架的丰富吧,要不然维护客户端会话也够难实现

    作者回复: 是的,简单

    
     2
  • 凡凡
    2018-08-03
    第一个问题有点模糊,感觉这个设计没有问题,任何传输方式,一旦经过网络,都会发生很多可能性,必须做幂等处理。如果指的是服务端无状态的话,原因就是提升扩展性,应对C端用户的大规模和并发。

    第二个问题,主要在于序列化和传输。序列化方面由于有格式就不如二进制紧凑,传输的数据量相对来说要大。另一个是二进制可以自定义规范,或者编码方案,传输路径上,数据被截获,也不容易解析。
    
     2
  • Geek_f6f02b
    2019-04-25
    RESTful 模型如何实现幂等,这个表示没有想通,就是好比之前SOAP,你告诉我减库存,我就执行减,减后还剩多少,是否成功返回,但是如果是客户端直接减去库存,然后告诉我说,将库存设置成这么多,服务端只要告诉我是否成功,并发了怎么解决,多个人同时请求,如果库存为10,5个请求都是减1,如果前面失败,但是后面成功,前面分别说将库存设置成9、8、7、6,都失败了,最后一个说设置成5成功了,感觉会有问题。

    作者回复: 你这种减是有问题的,并发怎么办,后面5个只有一个成功是对的,其他还可以重试。

    
     1
  • 葱本
    2019-04-04
    问个问题,购买这个动作,是告诉服务端减一,难受没有办法做到只告诉服务端结果吧

    作者回复: 购买可不止减库存,服务端可以有个状态机的,要不然重复购买怎么办。

    
     1
  • makermade
    2018-09-27
    讲得很好
    
     1
  • Yayu
    2018-08-15
    JSON-RESTful 算是一种协议吗?把它理解成一种规范会更好吧?

    作者回复: 没必要纠结吧

    
     1
  • stg609
    2019-10-12
    想问下,关于库存问题的最终答案在课程哪一讲中有公布吗?
    
    
  • 随心而至
    2019-05-25
    底子好,学起什么来都快

    作者回复: 是的

    
    
  • 起风了001
    2019-05-24
    我们平时设计的api, 比如购买东西, 是传的数量, 而不是传库存剩余多少呀. 传数量应该是主流才是, 所以传数量不是RESTful模式吗?

    作者回复: 对外接口是,内部实现不是

    
    
  • 谢晋
    2019-05-12
    1、库存的扣减,需要考虑幂等性 ,商品的库存也是一种资源,但是好像没有删除库存一说,只有修改和查询。
    2、基于文本的RPC是指的SOAP吗?
    
    
我们在线,来聊聊吧