概述
Kratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具。
Girhub:https://github.com/go-kratos/kratos
开发文档:https://go-kratos.github.io/kratos/#/
结构
- HTTP Blademaster:核心基于gin进行模块化设计,简单易用、核心足够轻量;
- GRPC Warden:基于官方gRPC开发,集成discovery服务发现,并融合P2C负载均衡;
- Cache:优雅的接口化设计,非常方便的缓存序列化,推荐结合代理模式overlord;
- Database:集成MySQL/HBase/TiDB,添加熔断保护和统计支持,可快速发现数据层压力;
- Config:方便易用的paladin sdk,可配合远程配置中心,实现配置版本管理和更新;
- Log:类似zap的field实现高性能日志库,并结合log-agent实现远程日志管理;
- Trace:基于opentracing,集成了全链路trace支持(gRPC/HTTP/MySQL/Redis/Memcached);
- Kratos Tool:工具链,可快速生成标准项目,或者通过Protobuf生成代码,非常便捷使用gRPC、HTTP、swagger文档;
入门
go版本要求:Go version>=1.13
go get -u github.com/go-kratos/kratos/tool/kratos
cd $GOPATH/src
kratos new kratos-demo
注意执行创建kratos new 命令的时候一定要把 $GOPATH/bin 设置成环境变量