Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

如果每个请求都有唯一 ID

  昨晚做了一个神奇的梦,梦见硬币上全都有二维码,扫描可以看到硬币的使用历史。我也不知道为什么会做这么奇奇怪怪的梦,好像这就是传说中那物联网的概念了。虽然现实和梦还存在很大的差距,但是仔细想想好像如果每个东西都可以看到它的历史,是不是更容易排障呢?
  由于 Web 的结构通常是很多层堆叠起来的,在复杂的架构下,如果某一层出了问题是很难直接定位到的。但是如果一个从前端发起的接口调用可以跟踪到它经过的每一层,那么即使程序出了问题我们也可以迅速定位到是哪一层出了问题。
  给每一个 API 请求都添加一个 ID 作为它的唯一标识符确实可以做到这一点。而且不仅仅是用于定位问题与排障,还有以前扯过的「Web 中的事务与撤销」的实现条件也会自然满足起来。
  有时候一套程序会莫名其妙地很慢,但又找不到慢在何处。如果每一层都带上一个时间戳,我们就可以观察到一个请求在每一层上的耗时。
  每个请求都加上唯一标识符会不会对性能或资源开销有什么影响呢?直觉总是告诉我会有影响,然而考虑一下现在各种项目中 Cookie 本身的长度,好像即使多了这么一个 ID 也完全不痛不痒。真正的问题是这样一套东西的实现确实非常困难。难点在于内部各个服务之间调用的协议未必相同。比如前端直接调用几乎都走 HTTP,而 HTTP 服务器到后端程序通常走 Fast CGI,然后后端程序调其它服务通常又走各种奇奇怪怪的 RPC。如果可以尽可能地将这些协议统一起来,也许真可以从底层统一实现。
网名:
54.146.176.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^