服务间通信:HTTP、RPC 与消息队列分别适合什么场景
当系统从单体进入多服务阶段以后,最基本也最绕不开的问题之一就是:服务之间到底该怎么通信。表面上看,这好像只是协议和中间件选型问题,但实际决定它的,往往是调用关系、实时性、耦合方式、失败恢复和系统边界。...
当系统从单体进入多服务阶段以后,最基本也最绕不开的问题之一就是:服务之间到底该怎么通信。表面上看,这好像只是协议和中间件选型问题,但实际决定它的,往往是调用关系、实时性、耦合方式、失败恢复和系统边界。...
很多人第一次写 Go Web 服务,往往是从一个 main.go 开始:注册路由、写处理函数、启动监听,几十行代码就能把接口跑起来。这种方式很适合入门,但项目一旦稍微变大,所有逻辑都堆在入口文件里,就...
线上最常见的一句反馈就是“接口慢”。但如果不把耗时拆开,这句话几乎没有排障价值。慢到底慢在 DNS、TCP 建连、TLS 握手、服务处理,还是响应体下载,必须拆出来才能继续判断。 HTTP 排障最容易...
HTTP 报文结构:方法、状态码、头部与实体 上一篇我们看了 HTTP 怎么一代代演进,但无论 HTTP/2 怎么二进制分帧、HTTP/3 怎么换到 QUIC,那套"方法、状态码、头部、实体...
HTTP 发展简史:从 HTTP/1.0 到 HTTP/3 前面三篇我们把 TCP 怎么把字节可靠送达讲透了。现在往上走一层:这些字节表示什么?这就是应用层协议 HTTP 的职责。很多人天天写接口、调...