jxt-core - 企业级微服务基础框架

本仓库基于 go-admin-core 修改,原项目遵循 Apache 2.0 协议
项目简介
jxt-core 是一个基于 Go 语言的企业级微服务基础框架,提供了构建现代化分布式应用所需的核心组件和工具。框架采用模块化设计,支持多种部署模式,适用于大型企业级应用开发。
核心特性
🚀 基础设施组件
- 日志组件 - 基于 zap 的高性能结构化日志,支持多种输出格式和日志分级
- 配置管理 - 基于 viper 的多格式配置支持(YAML、JSON、TOML等)
- 缓存系统 - 支持 Memory、Redis 多种缓存后端
- 消息队列 - 支持 Memory、Redis、NSQ 多种队列实现
- 分布式锁 - 基于 Redis 的分布式锁实现
🔧 服务治理
- 服务发现 - 基于 ETCD 的服务注册与发现
- gRPC 支持 - 完整的 gRPC 服务端和客户端实现
- HTTP 服务 - 基于 Gin 的 RESTful API 支持
- 负载均衡 - 支持多种负载均衡策略
- 监控指标 - 集成 Prometheus 监控指标收集
🔐 安全认证
- JWT 认证 - 完整的 JWT token 生成和验证
- 权限控制 - 基于 Casbin 的 RBAC 权限管理
- 验证码 - 图形验证码生成和验证
- 加密工具 - 常用的加密解密工具集
📡 通信协议
- WebSocket - 实时双向通信支持
- gRPC - 高性能 RPC 通信
- HTTP/HTTPS - 标准 Web API 支持
💾 数据存储
- 多数据库支持 - MySQL、PostgreSQL、SQLite、SQL Server
- ORM 集成 - 基于 GORM 的数据库操作
- 读写分离 - 支持主从数据库配置
- 事务管理 - 完整的数据库事务支持
⏰ 任务调度
- 定时任务 - 基于 cron 的任务调度
- 异步任务 - 基于队列的异步任务处理
🛠 开发工具
- 代码生成 - 自动生成常用代码模板
- 工具函数 - 丰富的工具函数库
- 中间件 - 常用的 HTTP 中间件
- 响应封装 - 统一的 API 响应格式
快速开始
环境要求
- Go 1.23+
- Redis 6.0+ (可选)
- MySQL 8.0+ / PostgreSQL 12+ (可选)
- ETCD 3.5+ (用于服务发现,可选)
安装
go get github.com/ChenBigdata421/jxt-core
基本使用
package main
import (
"github.com/ChenBigdata421/jxt-core/sdk"
"github.com/ChenBigdata421/jxt-core/sdk/config"
)
func main() {
// 初始化配置
cfg := config.NewConfig()
// 创建应用实例
app := sdk.NewApplication(cfg)
// 启动应用
app.Run()
}
配置示例
# 应用配置
application:
name: "my-service"
mode: "dev"
version: "1.0.0"
# HTTP 服务配置
http:
host: "0.0.0.0"
port: 8080
# 数据库配置
database:
masterDB:
driver: "mysql"
source: "user:pass@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
# 缓存配置
cache:
redis:
addr: "localhost:6379"
password: ""
db: 0
# 日志配置
logger:
level: "info"
format: "json"
项目结构
jxt-core/
├── sdk/ # 核心 SDK
│ ├── config/ # 配置管理
│ │ └── config.go # 配置管理逻辑
│ ├── pkg/ # 核心组件包
│ │ ├── logger/ # 日志组件
│ │ ├── jwtauth/ # JWT 认证
│ │ ├── casbin/ # 权限控制
│ │ ├── captcha/ # 验证码
│ │ ├── ws/ # WebSocket
│ │ └── cronjob/ # 定时任务
│ ├── middleware/ # 中间件
│ └── service/ # 服务层
├── storage/ # 存储层
│ ├── cache/ # 缓存实现
│ ├── queue/ # 队列实现
│ └── locker/ # 分布式锁
├── examples/ # 使用示例
├── tools/ # 开发工具
└── docs/ # 文档
文档
贡献
欢迎提交 Issue 和 Pull Request 来帮助改进项目。
许可证
本项目采用 Apache 2.0 许可证。
版本历史