微服务框架对比理解

📑 目录

分类对比

目前了解到的有三个

框架特点
Kratos解决大新团队架构问题,DDD领域架构分层,统一架构规范,方便团队合作
Kitex解决性能与稳定性和大规模集群下延迟与资源消耗,自研的高性能网络库Netpoll和零拷贝序列化技术,显著降低了网络I/O和序列化的CPU开销,提供了丰富的治理特性
go-zero用于快速开发解决高并发问题,通过代码生成和内置治理提升开发效率及性能与稳定性。
治理能力go-zeroKratosKitex
服务注册发现内置可插拔,需集成不内置,需集成
限流内置中间件扩展
熔断内置中间件扩展
降载内置自适应降载需自行实现扩展
超时/重试内置支持支持
配置中心支持抽象接口,需集成需集成
链路追踪支持内置抽象,集成 OTel支持
监控指标支持内置 metrics 抽象支持
网关内置 HTTP需自行组合需额外组件

一般架构

go-micro-job/
├── go.work
├── README.md
├── Makefile
├── docker-compose.yml
├── api/
│ └── proto/
│ ├── user/v1/user.proto
│ └── order/v1/order.proto
├── services/
│ ├── gateway/
│ │ ├── go.mod
│ │ ├── cmd/main.go
│ │ └── internal/
│ ├── user/
│ │ ├── go.mod
│ │ ├── cmd/main.go
│ │ ├── internal/
│ │ │ ├── domain/
│ │ │ ├── usecase/
│ │ │ ├── repository/
│ │ │ └── transport/
│ │ └── migrations/
│ └── order/
│ ├── go.mod
│ └── …
├── pkg/
│ ├── logger/
│ ├── tracing/
│ ├── config/
│ └── middleware/
├── deployments/
│ ├── docker-compose.yml
│ └── k8s/
└── docs/
├── architecture.md
└── api.md

不同框架工具生成的不同,但是大体思想可以这样理解

评论

加载评论中...