代码示例

Kratos 提供了丰富的示例代码/项目供参考

组件使用

全部示例

配置

  • config 使用 config 组件解析配置文件的示例
  • apollo 从 apollo 中获取配置的示例

服务发现&服务注册

  • etcd 使用 etcd 插件,在 server 端进行服务注册和在 client 端进行服务注册的示例
  • nacos 使用 nacos 插件,在 server 端进行服务注册和在 client 端进行服务注册的示例
  • consul 使用 consul 插件,在 server 端进行服务注册和在 client 端进行服务注册的示例
  • zookeeper 使用 zookeeper 插件,在 server 端进行服务注册和在 client 端进行服务注册的示例

HTTP

  • cors 跨域设置示例
  • gin 将 gin 作为 router 集成进 Kratos 项目的示例
  • mux 将 mux 作为 router 集成进 Kratos 项目的示例
  • echo 将 echo 作为 router 集成进 Kratos 项目的示例
  • static 通过 HTTP 提供静态文件服务的示例
  • upload 通过 HTTP 上传文件的示例
  • redirect 重定向的示例
  • middleware 在路由中使用中间件的示例
  • errors 使用统一的错误处理进行错误响应的示例

RPC

  • helloworld 分别使用 HTTP 和 gRPC 进行远程调用的样例

Trace

  • traces 使用 Jaeger 对两个服务进行分布式追踪的样例

WebSocket

  • ws 提供 WebSocket 接口的样例

鉴权

  • jwt 在 HTTP、gRPC 中使用 JWT 进行鉴权的示例

日志

  • zap 使用 zap 日志库的示例
  • logrus 使用 logrus 日志库的示例

其他

  • i18n 国际化支持的示例
  • header 请求头处理示例
  • selector 选择器示例,可通过负载均衡和 Filter 进行选择
  • swagger 使用 Swagger 插件自动生成接口文档并提供在线服务的示例

综合项目

  • blog 简单的 CRUD 工程,包含 MySQL 和 Redis 的使用,展示使用 kratos-layout 创建的项目的完整结构

  • beer-shop 一个模拟电商的完整微服务应用,展示如何使用 kratos 构建大型微服务项目