# kk_kit **Repository Path**: cruvie/kk_kit ## Basic Information - **Project Name**: kk_kit - **Description**: 一个开发工具包kk_kit - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-21 - **Last Updated**: 2026-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # kk_go_kit [![Go Reference](https://pkg.go.dev/badge/gitee.com/cruvie/kk_go_kit.svg)](https://pkg.go.dev/gitee.com/cruvie/kk_go_kit) 一个功能丰富的 Go 开发工具库,提供微服务开发所需的各种基础组件。 ## 功能模块 ### 核心基础 #### kk_stage - 服务阶段管理 - **日志管理**: 结构化日志输出,支持 slog 日志框架 - **std日志重定向**: 将标准输出重定向到日志文件 - **链路追踪**: 基于 OpenTelemetry 的分布式追踪,支持 gRPC 导出 - **TraceId 管理**: 请求级别的唯一标识符管理 #### kk_config - 配置管理 - 服务配置接口定义 - 配置加载与验证机制 #### kk_env - 环境管理 - 环境变量管理 - 开发/生产环境切换 #### kk_ctx - 上下文管理 - 请求上下文封装 - 上下文传递与生命周期管理 ### 数据存储 #### kk_redis - Redis 客户端 - 连接池管理 - 对象存储/读取 (JSON 序列化) - Hash 操作 (HSetObj/HGetObj/HGetAll) - 键存在检查 (Exists) - 过期时间设置 - Lua 脚本执行支持 - 自定义序列化器 #### kk_pg - PostgreSQL/GORM - GORM 客户端初始化 - PostgreSQL DSN 构建器 - 自定义日志适配器 - 数据库连接池配置 - 类型转换工具 (Int32 等) - GORM 代码生成支持 #### kk_s3 - S3 对象存储 - 文件上传 (本地文件/流式上传) - 文件下载 (GetObject) - 文件删除 (DeleteObject) - 文件信息查询 (StatObject) - 批量操作支持 - **预签名 URL**: 生成客户端直传的上传 Token ### 消息队列 #### kk_nats - NATS 消息队列 - 基础消息发布/订阅 - 同步/异步订阅模式 - 请求-响应模式 (Request) - Channel订阅模式 - JetStream 支持 ### 网络与通信 #### kk_grpc - gRPC 服务 - **健康检查**: gRPC 标准健康检查服务注册 - **API 代码生成**: 基于 Protobuf 自动生成 Handler/Service/Check 代码 - 自定义 Codec - 反射服务注册 #### kk_net - 网络工具 - 本机 IP 获取 - UDP 通信工具 - IP 地址解析与验证 ### 安全认证 #### kk_jwt - JWT 认证 - Token 生成 (AccessToken/RefreshToken) - Token 验证与解析 - 刷新机制支持 - 自定义 Claims (UserId/DeviceId) - 过期时间管理 - 刷新次数限制 #### kk_crypto - 加密工具 - SHA256 哈希计算 - ID 哈希生成 (批量 ID 合并哈希) - 密码加密与验证 ### 并发与同步 #### kk_sync - 并发安全集合 - **并发安全 Slice**: 线程安全的切片操作 - Append/Slice/Len/Copy - 条件替换 (ReplaceWhere/ReplaceAllOrAppend) - 条件删除 (DeleteFunc) - 随机打乱 (Shuffle) - **并发错误收集**: 多 goroutine 错误聚合 (Error) #### kk_executor - 自动回滚执行器 - 普通执行器: 执行失败时自动调用回滚函数 - **数据库事务执行器**: 事务失败自动 Rollback #### kk_limiter - 限流器 - 基于 Token 的速率限制 - 按任务 Key 分组限流 - 同步/异步任务执行 - 预置 SMSLimiter (短信限流) ### 监控告警 #### kk_monitor_alarm - 监控告警套件 - **kk_prometheus**: Prometheus 告警规则管理、Reload API - **kk_alert**: 告警信息查询与管理 - **kk_monitor**: 自定义指标采集器 - **kk_collector**: HTTP 请求指标采集 - **kk_dashboard**: 监控仪表盘配置 #### kk_pprof - 性能分析 - Web 端点暴露 (pprof HTTP 服务) - Block/Mutex 采集配置 - 内存/CPU/Goroutine 分析 - Trace 追踪采集 ### 工具库 #### kk_file - 文件处理 - 文件创建/追加/覆盖写入 - 目录自动创建 - 文件类型检测 - 代码扫描转文本 (ScanCodeToTxt) #### kk_image - 图片处理 - 基于 libvips 的图片处理 - 并发级别配置 - 图片缩放/裁剪/格式转换 #### kk_captcha - 验证码 - **图形验证码**: Base64 编码的图形验证码生成 - **手机/邮箱验证码**: 短信/邮件验证码发送与验证 #### kk_id - ID 生成 - UUID v7 生成 (时间排序 UUID) - 雪花 ID 转 UUID v7 - 分布式唯一 ID #### kk_time - 时间工具 - UTC 时间获取 - 时间格式化 - 时区处理 #### kk_string - 字符串工具 - 字符串处理函数 - 首字母大小写转换 #### kk_slice - 切片工具 - 切片排序 - 切片查找与过滤 #### kk_number - 数字工具 - 大数字处理 - 数学运算 #### kk_validate - 验证工具 - 字符串验证 - 输入校验 ### 设计模式 #### kk_state_machine - 状态机 - 泛型状态机实现 - 状态转换管理 - Enter/Exit 生命周期钩子 #### kk_graph - 图算法 - 邻接矩阵实现 - 图遍历算法 ### 服务管理 #### kk_server - 服务器管理 - 多服务启动与关闭 - 优雅关闭支持 - 服务等待时间配置 #### kk_protobuf - Protobuf 工具 - Proto 文件生成脚本 - 枚举类型工具 - Protobuf 接口定义 #### kk_reflect - 反射工具 - 函数反射调用 - 动态方法调用 - Benchmark 测试 #### kk_cmd - 命令行 - Shell 命令执行 - 命令输出捕获 #### kk_script - 脚本工具 - 脚本执行管理 #### kk_location - 位置服务 - 地理位置配置 - 位置数据处理 #### kk_geography - 地理工具 - 地理位置校验 #### kk_system - 系统工具 - 系统信息获取 - 系统资源监控 ## 安装 ```bash go get gitee.com/cruvie/kk_go_kit ``` ## 使用示例 ```go package main import ( "gitee.com/cruvie/kk_go_kit/kk_stage" "gitee.com/cruvie/kk_go_kit/kk_redis" "gitee.com/cruvie/kk_go_kit/kk_jwt" ) func main() { // 初始化日志与追踪 stage := kk_stage.NewStage("my-service") // Redis 操作 err := kk_redis.SetObj("user:123", user, time.Hour) // JWT Token 生成 jwtConfig := kk_jwt.ConfigJWT{Key: "secret", AccessTokenValidMinute: 30} token, _ := jwtConfig.GenerateToken(payload, kk_jwt.AccessToken, 0) } ```