186

Kratos:bilibili 开源的一套 Go 微服务框架

 4 years ago
source link: https://github.com/bilibili/kratos?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Kratos

Kratos是 bilibili 开源的一套Go微服务框架,包含大量微服务相关框架及工具。主要包括以下组件:

  • http框架blademaster(bm) :基于 gin 二次开发,具有快速、灵活的特点,可以方便的开发中间件处理通用或特殊逻辑,基础库默认实现了log&trace等。
  • gRPC框架warden :基于官方gRPC封装,默认使用 discovery 进行服务注册发现,及wrr和p2c(默认)负载均衡。
  • dapper trace :基于opentracing,全链路集成了trace,我们还提供dapper实现,请参看: dapper敬请期待
  • log :基于 zap 的field方式实现的高性能log库,集成了我们提供的 log-agent敬请期待 日志收集方案。
  • database :集成MySQL&HBase&TiDB的SDK,其中TiDB使用服务发现方案。
  • cache :集成memcache&redis的SDK,注意无redis-cluster实现,推荐使用代理模式 overlord
  • kratos tool :kratos相关工具量,包括项目快速生成、pb文件代码生成、swagger文档生成等。

我们致力于提供完整的微服务研发体验,整合相关框架及工具后,微服务治理相关部分可对整体业务开发周期无感,从而更加聚焦于业务交付。对每位开发者而言,整套Kratos框架也是不错的学习仓库,可以了解和参考到 bilibili 在微服务方面的技术积累和经验。

快速开始

go get -u github.com/bilibili/kratos/tool/kratos
kratos init

kratos init 会快速生成基于kratos库的脚手架代码,如生成 kratos-demo

cd kratos-demo/cmd
go build
./cmd -conf ../configs

打开浏览器访问: http://localhost:8000/kratos-demo/start ,你会看到输出了 Golang 大法好 !!!

快速开始

Document

简体中文

Please report bugs, concerns, suggestions by issues, or join QQ-group 716486124 to discuss problems around source code.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK