kratos-shop

基于 Go-Kratos v2 的微服务商城示例:user / goods / cart / order / inventory / payment / shop / admin 共 8 个服务,配套 Consul、RabbitMQ、Elasticsearch 与完整的可观测性。

CI Go 1.26.5 MIT License Release
快速开始 查看 API Star on GitHub

项目特点

微服务拆分按领域拆分为 6 个 gRPC 服务 + 商城 BFF + 后台管理
服务发现Consul 注册与发现,gRPC 跨服务调用
异步消息RabbitMQ 承载订单、支付、库存之间的消息事件
可观测性Prometheus、Grafana、Jaeger、Loki 开箱即用
一键启动make up 拉起整套环境与监控组件
多形态部署Docker Compose、多服务器手动部署、Kubernetes Kustomize

架构总览

用户 / 浏览器 Traefik 网关 :80
shop 商城 BFF :8097 admin 后台管理 :9099
↓ gRPC discovery
user :50051 goods :50052 cart :50053 order :50054 inventory :50055 payment :50056
PostgreSQL Redis Elasticsearch RabbitMQ Consul

快速开始

git clone git@github.com:arixbit/kratos-shop.git
cd kratos-shop
make up

make up 会通过 deploy/docker-compose.yml 一次性启动全部 8 个服务与基础设施;手动启动、多服务器部署见 README

可观测性与辅助组件

Prometheus / Grafana

8 个服务指标(9101-9108)自动抓取,Grafana 预置 Prometheus 与 Loki 数据源。

Jaeger

分布式链路追踪,查看一次请求在多个微服务之间的调用链与耗时。

RabbitMQ

订单/支付/库存之间的异步消息队列,管理台可直接查看队列与积压。

Loki + Promtail

容器日志自动采集,在 Grafana Explore 中按 container / service 标签查询。

演示账号

角色手机号密码
普通用户1380013800012345678
管理员1350116721512345678

支付服务当前为本地模拟(channel: mock),不会发起真实扣款。