# kratos-bootstrap **Repository Path**: tx7do/kratos-bootstrap ## Basic Information - **Project Name**: kratos-bootstrap - **Description**: kratos-bootstrapkratos-bootstrap 是一个基于 Go 语言的Kratos微服务框架应用引导框架,旨在为微服务或独立应用提供标准化的初始化、配置管理、组件集成能力,简化应用开发中的基础设施搭建工作。该项目集成了多种常用中间件、数据库客户端、服务注册发现机制及脚本引擎,帮助开发者快速构建稳定、可扩展的应用程序。 - **Primary Language**: Go - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-11-01 - **Last Updated**: 2026-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: Go语言, go-kratos ## README

kratos-bootstrap

基于 go-kratos 的微服务应用引导框架

一站式基础设施引导,让微服务开发从此告别重复搭建

中文 · English · 日本語

Go Version Kratos License PRs Welcome

--- ## 项目亮点 - **统一引导入口**:封装配置加载、日志初始化、服务注册、链路追踪等全流程,一行代码启动微服务 - **九大数据库引擎**:原生支持 ClickHouse、Doris、Elasticsearch、OpenSearch、MongoDB、InfluxDB、Cassandra、Ent、GORM 等主流数据库 - **七大注册中心**:集成 Consul、Etcd、Nacos、Zookeeper、Eureka、Polaris、ServiceComb 等主流服务发现组件 - **六大远程配置中心**:支持 Apollo、Consul、Etcd、Nacos、Polaris、Kubernetes ConfigMap 远程配置管理 - **五大传输层**:内置 Kafka、Asynq、MCP、MQTT、SSE 等消息与流式传输组件 - **三大 AI 框架**:集成 go-openai、LangChainGo、Eino,支持云端模型与本地模型(Ollama)无缝切换 - **多语言脚本引擎**:支持 JavaScript(ES6+)与 Lua 脚本动态扩展业务逻辑 - **全链路可观测**:基于 OpenTelemetry 的分布式链路追踪,支持 Jaeger 等多种 Exporter - **六种日志框架**:支持 Zap、Zerolog、Logrus、Fluent、阿里云 SLS、腾讯云 CLS 日志输出 - **配置契约优先**:全部配置通过 Protobuf 定义,类型安全、强约束、自动生成 --- ## 技术栈 | 层级 | 技术 | 说明 | | --- | --- | --- | | 语言 | Go 1.23+ | 高性能编译型语言 | | 框架 | go-kratos v2 | B站开源微服务框架 | | 配置定义 | Protobuf + buf.build | 接口契约优先,类型安全 | | 链路追踪 | OpenTelemetry | 分布式可观测标准 | | 对象存储 | MinIO / S3 | S3 兼容对象存储 | | 缓存 | Redis | go-redis v9,支持链路追踪与指标采集 | | AI 框架 | go-openai / LangChainGo / Eino | 多框架 LLM 接入,支持云端与本地模型 | | 消息队列 | Kafka | 高吞吐事件流处理 | | 异步任务 | Asynq | 基于 Redis 的异步任务队列 | | AI 工具协议 | MCP (Model Context Protocol) | AI Agent 工具调用标准协议 | | 实时推送 | SSE | 服务端事件推送 | | 物联网 | MQTT | 轻量级消息传输协议 | | 脚本引擎 | goja(JS)/ gopher-lua | 多语言动态脚本执行 | --- ## 项目结构 ``` kratos-bootstrap/ ├── api/ # Protobuf API 定义与生成代码 │ ├── protos/conf/v1/ # .proto 源文件(配置结构定义) │ └── gen/go/conf/v1/ # buf 生成的 Go 代码 ├── bootstrap/ # 应用引导核心 │ ├── bootstrap.go # 引导入口(配置加载/日志/注册/追踪) │ ├── cli.go # CLI 命令行框架(Cobra) │ ├── context.go # 引导上下文 │ └── daemon.go # 守护进程支持 ├── ai/ # AI 大模型集成 │ ├── model/ # go-openai 原生客户端 │ ├── langchaingo/ # LangChainGo 框架封装 │ └── eino/ # 字节跳动 Eino 框架封装 ├── config/ # 远程配置中心 │ ├── apollo/ # Apollo 配置中心 │ ├── consul/ # Consul KV 配置 │ ├── etcd/ # Etcd 配置 │ ├── nacos/ # Nacos 配置 │ ├── polaris/ # Polaris 配置 │ └── kubernetes/ # Kubernetes ConfigMap ├── registry/ # 服务注册与发现 │ ├── consul/ # Consul 注册中心 │ ├── etcd/ # Etcd 注册中心 │ ├── nacos/ # Nacos 注册中心 │ ├── zookeeper/ # Zookeeper 注册中心 │ ├── eureka/ # Eureka 注册中心 │ ├── polaris/ # Polaris 注册中心 │ ├── servicecomb/ # ServiceComb 注册中心 │ └── kubernetes/ # Kubernetes 注册中心 ├── database/ # 数据库客户端 │ ├── clickhouse/ # ClickHouse(OLAP) │ ├── doris/ # Apache Doris(OLAP) │ ├── elasticsearch/ # Elasticsearch(搜索引擎) │ ├── opensearch/ # OpenSearch(搜索引擎) │ ├── mongodb/ # MongoDB(文档数据库) │ ├── influxdb/ # InfluxDB(时序数据库) │ ├── cassandra/ # Cassandra(宽列数据库) │ ├── ent/ # Ent ORM │ └── gorm/ # GORM ORM ├── transport/ # 传输层组件 │ ├── kafka/ # Kafka 消息队列 │ ├── asynq/ # Asynq 异步任务 │ ├── mcp/ # MCP AI 工具协议 │ ├── mqtt/ # MQTT 物联网协议 │ └── sse/ # SSE 服务端推送 ├── logger/ # 日志框架集成 │ ├── zap/ # Zap 高性能日志 │ ├── zerolog/ # Zerolog 零分配日志 │ ├── logrus/ # Logrus 结构化日志 │ ├── fluent/ # Fluentd 日志收集 │ ├── aliyun/ # 阿里云 SLS 日志服务 │ └── tencent/ # 腾讯云 CLS 日志服务 ├── cache/ # 缓存 │ └── redis/ # Redis 客户端 ├── tracer/ # 链路追踪 │ └── exporter.go # OpenTelemetry Exporter 工厂 ├── rpc/ # RPC 通信 │ ├── grpc.go # gRPC 客户端/服务端 │ ├── rest.go # REST (HTTP) 客户端/服务端 │ └── middleware/ # RPC 中间件 │ ├── validate/ # Protobuf 参数校验 │ └── requestid/ # 请求 ID 中间件 ├── oss/ # 对象存储 │ ├── minio/ # MinIO 客户端 │ └── s3/ # S3 兼容客户端 └── script_engine/ # 脚本引擎 └── script_engine.go # JavaScript / Lua 脚本执行引擎 ``` --- ## 核心功能 ### 应用引导 | 功能 | 说明 | | --- | --- | | 统一启动入口 | 通过 `Bootstrap` 函数封装配置加载、日志初始化、服务注册、链路追踪全流程 | | CLI 框架 | 基于 Cobra 的命令行框架,支持子命令定制与 Flag 注入 | | 守护进程 | 原生守护进程模式,支持后台运行与 PID 管理 | | 应用元信息 | 统一管理应用名称、版本号、实例 ID、项目空间等元数据 | | 优雅退出 | 内置信号捕获与优雅关停机制,确保服务安全下线 | ### 服务注册与发现 | 注册中心 | 说明 | | --- | --- | | Consul | HashiCorp 服务发现与 KV 存储 | | Etcd | 高可用分布式 KV,Kubernetes 底层存储 | | Nacos | 阿里云微服务注册与配置中心 | | Zookeeper | Apache 分布式协调服务 | | Eureka | Netflix 服务发现组件 | | Polaris | 腾讯云北极星服务治理平台 | | ServiceComb | 华为云微服务引擎 | | Kubernetes | 原生 Kubernetes 服务发现 | ### 远程配置中心 | 配置中心 | 说明 | | --- | --- | | Apollo | 携程分布式配置管理中心 | | Consul | Consul KV 配置存储 | | Etcd | Etcd 分布式配置 | | Nacos | Nacos 配置管理 | | Polaris | Polaris 配置管理 | | Kubernetes | Kubernetes ConfigMap | ### 数据库支持 | 数据库 | 类型 | 说明 | | --- | --- | --- | | ClickHouse | OLAP | 列式存储,极致分析性能 | | Apache Doris | OLAP | 高性能实时分析引擎 | | Elasticsearch | 搜索引擎 | 全文检索与日志分析 | | OpenSearch | 搜索引擎 | Elasticsearch 开源分支 | | MongoDB | 文档数据库 | 灵活的文档模型 | | InfluxDB | 时序数据库 | 时序数据存储与查询 | | Cassandra | 宽列数据库 | 高可用分布式存储 | | Ent | ORM | Go 实体框架 | | GORM | ORM | Go 最流行的 ORM | ### AI 大模型 | 模块 | 框架 | 说明 | | --- | --- | --- | | model | go-openai | OpenAI 兼容 API 原生客户端 | | langchaingo | LangChainGo | Chain / Agent / Embedding / VectorStore / Memory | | eino | 字节跳动 Eino | Chain / Tool / Prompt / Compose | 所有 AI 模块均支持: - **云端模型**:OpenAI、通义千问、DeepSeek 等兼容 OpenAI API 的模型服务 - **本地模型**:Ollama 本地部署,零依赖云端 ### 传输层 | 传输组件 | 说明 | | --- | --- | | Kafka | 高吞吐消息队列,支持 SASL/SCRAM 认证与 TLS 加密 | | Asynq | 基于 Redis 的异步任务队列,支持单机/集群/Sentinel 模式 | | MCP | Model Context Protocol,AI Agent 工具调用标准协议(HTTP/SSE/Stdio) | | MQTT | 轻量级物联网消息传输协议 | | SSE | Server-Sent Events 实时服务端推送 | ### 日志框架 | 日志框架 | 说明 | | --- | --- | | Zap | Uber 开源高性能日志库 | | Zerolog | 零分配高性能 JSON 日志 | | Logrus | 结构化日志库 | | Fluent | Fluentd 日志收集 | | 阿里云 SLS | 阿里云日志服务 | | 腾讯云 CLS | 腾讯云日志服务 | ### 链路追踪 基于 OpenTelemetry 标准实现,支持: - 采样率配置(TraceIDRatioBased 采样) - W3C TraceContext 与 Baggage 传播 - 可插拔 Exporter 工厂模式 - 服务元信息自动注入(服务名、版本、实例 ID、环境) ### RPC 通信 | 功能 | 说明 | | --- | --- | | gRPC 服务端/客户端 | 原生 gRPC 支持,内置 TLS、超时、中间件链 | | REST (HTTP) 服务端 | HTTP/RESTful API 服务,支持 CORS、pprof 调试 | | 中间件链 | Recovery / Tracing / Validate / RateLimit / Metadata | | 限流 | BBR(Google BBR 算法)自适应限流 | | 白名单 | 基于方法名的中间件白名单机制 | ### 脚本引擎 | 语言 | 引擎 | 说明 | | --- | --- | --- | | JavaScript | goja | 支持 ES6+ 语法,适用于规则引擎与动态计算 | | Lua | gopher-lua | 轻量级嵌入式脚本语言 | 支持脚本池管理(固定大小 / 自动伸缩),预加载脚本与入口脚本。 ### 对象存储 | 存储 | 说明 | | --- | --- | | MinIO | 自托管 S3 兼容对象存储 | | S3 | Amazon S3 / 兼容存储 | --- ## 设计原则 - **配置驱动**:全部组件通过 Protobuf 配置定义初始化,类型安全,避免硬编码 - **非侵入封装**:封装层仅做配置转译与实例创建,不侵入框架原生 API,保留框架原生使用方式 - **工厂模式**:注册中心、日志、追踪等组件均采用工厂注册模式,按需加载,松耦合 - **模块化设计**:每个功能模块独立 Go Module,按需引入,不产生冗余依赖 - **防御性编程**:全面的空指针检查与错误处理,确保组件缺失时不影响主流程 --- ## 适用场景 - 微服务架构下的标准化应用引导与基础设施管理 - 需要集成多种数据库与中间件的复杂业务系统 - AI 应用开发,需对接多种大模型与 Agent 框架 - 物联网场景,需要 MQTT 消息传输与边缘计算 - 实时数据处理,需要 Kafka / Asynq 异步任务调度 - 需要动态脚本扩展业务规则的场景(如规则引擎、动态计算) --- ## 许可证 项目基于 MIT 许可证开源,允许自由使用、修改和分发,需保留原版权信息。