熟悉的控制器与服务
控制器接收请求,服务处理业务。通过 Go 的结构体和方法划分各自的职责。
查看控制器编写方法
使用您在 NestJS 和 Spring 中熟悉的控制器与服务结构来组织 Go 应用。您可以使用构造函数注入和拦截器,并查看相同资源条件下测得的吞吐量和内存使用量。
go install github.com/NARUBROWN/spine-cli/cmd/spine@v0.1.4
spine new hello-spine --module example.com/hello-spine
cd hello-spine
go mod tidy
spine contract check
spine verify
spine dev
使用 CLI 生成项目,验证后再运行。完整步骤请参阅“第一个应用”。
使用 CLI 创建第一个应用我们为NestJS/Express、Spring MVC和FastAPI/Uvicorn各分配3 vCPU和3GiB内存进行比较。
Spine 内部实验室测试 / 2026.11.01
查看测量条件和完整结果163,559req/s
HTTP吞吐量
饱和负载下测量的中位数
41.8MiB
观测内存用量
每秒2万请求时的用量
1.062ms
p99响应延迟
每秒2万请求时的延迟
越高越好
假设每位用户每秒请求一次
如果使用Spine,还可多处理约69,582名用户的请求。
如果使用Spine,还可多处理约44,616名用户的请求。
如果使用Spine,还可多处理约113,386名用户的请求。
256个并发连接下的饱和吞吐量。我们比较了各实现的实际吞吐量。
此示例按每位用户每秒请求一次,将每秒吞吐量的差值换算为人数。实际可承载人数取决于请求频率和应用执行的任务。