___|  _ \   |  |    |   |_ _|\ \     / ____|
 |     |   |  |  |    |   |  |  \ \   /  __|
 |   | |   | ___ __|  ___ |  |   \ \ /   |
\____|\___/     _|   _|  _|___|   \_/   _____| 

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

为什么 REST 对微服务而言很糟糕

BY: @cifer | CREATED: Jan. 1, 2019, 6:16 a.m. | VOTES: 54 | PAYOUT: $3.36 | [ VOTE ]

RESTful 在过去风靡了有一阵子,然而在实践中它并不是那么好用,在现今微服务横行的时期更是如此。

REST 由 HTTP 承载,REST 建议我们尽可能的使用 HTTP 的状态码表示业务返回码,这从一开始就是有问题的,HTTP 状态码屈指可数,根本无法囊括复杂的业务返回值。而且很多时候是有歧义的,比如 404 到底表示这个 url 不存在还是我要请求的业务数据不存在?协议层的错误码和应用层的错误码,本就不该混用。

在微服务时代,我们往往还要求两个服务之间是能够双向通信的,而 REST 却是单向的 --- 只能由客户端请求服务端,要实现双向通信,要么多建立一条服务端请求客户端的连接,要么客户端不断的轮询服务端。

再就是我们希望能够复用同一条连接来发送多个请求,HTTP 默认情况下每个请求创建一个新连接,请求完释放连接,开销比较大。虽然 HTTP 的 keep-alive 头能够实现这一点,但这个机制比较粗糙,而且服务端还未必支持。

(首发:编程笔记)

TAGS: [ #cn-programming ] [ #programming ] [ #cn-reader ] [ #c ]

Replies

NO REPLIES FOUND.

[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>