在软件城市里,REST 更像城市公共道路:
- 谁都能走
- 路牌清晰
- 用 URL 找地点
- 用 HTTP 动词表达动作
- 适合公开服务、跨组织协作、浏览器直接访问
而 gRPC 更像政府部门之间拉的高速专线通信网:
- 不走公开大马路,走专用通道
- 双方先签好通信合同
- 每种公文格式都提前定义好
- 两边系统自动生成“收发窗口”
- 目标是低延迟、强约束、高吞吐、低心智损耗
你可以先记住一句话:
REST 更像“我去哪个地址拿什么资源”,gRPC 更像“我调用哪个部门的哪项能力”。
REST:公共道路模型
市民/外部系统
│
├── GET /orders/42
├── POST /orders
└── PATCH /orders/42
│
▼
资源大厅(URL + HTTP 语义)
gRPC:高速专线模型
财政局系统
│
├── CreateInvoice(...)
├── GetInvoice(...)
└── StreamInvoices(...)
│
▼
专线窗口(Service + RPC)所以,gRPC 的核心不是“把 JSON 换成二进制”这么简单,而是:
把系统间协作,从“自由拼 HTTP 请求”升级成“先定合同,再自动造窗口,再稳定通车”。