概述

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

  1. go get -u github.com/go-kratos/kratos/tool/kratos
  2. cd $GOPATH/src
  3. kratos new kratos-demo

注意执行创建kratos new 命令的时候一定要把 $GOPATH/bin 设置成环境变量