An open API service indexing awesome lists of open source software.

https://github.com/xiebingnote/go-gin-project

基于 Gin 进行模块化设计的 API 框架,封装了常用的功能,包括消息队列,数据库等,根据实际情况选择。
https://github.com/xiebingnote/go-gin-project

casbin clickhouse elasticsearch etcd gin gin-api go golang gorm jwt kafka mongodb mysql nsq postgresql pprof prometheus redis tdengine zap

Last synced: 4 months ago
JSON representation

基于 Gin 进行模块化设计的 API 框架,封装了常用的功能,包括消息队列,数据库等,根据实际情况选择。

Awesome Lists containing this project

README

        

# go-gin-project

基于 Gin 进行模块化设计的 API 框架,封装了常用的功能,包括消息队列,数据库等,使用简单,致力于进行快速的业务研发。

仅供参考学习,线上请谨慎使用!!!

### 集成组件:

1. 支持 rate 接口限流
2. 支持 JWT 鉴权管理
3. 支持 Casbin 权限管理
4. 支持 zap 日志收集
5. 支持 toml 配置文件解析
6. 支持 gorm 数据库组件
7. 支持 go-redis 组件
8. 支持 MySQL, Postgresql 关系型数据库
9. 支持 ElasticSearch, MongoDB 非关系型数据库
10. 支持 Clickhouse 列式数据库
11. 支持 Redis, Etcd 缓存数据库
12. 支持 Kafka, NSQ 消息队列
13. 支持 RESTful API 返回值规范

### 待添加完善组件:

1. 支持 TDengine 时序数据库
2. 支持 Prometheus 指标记录
3. 支持 pprof 性能剖析
4. 支持 manticore search 搜索引擎

## 架构图:
项目整体架构如下所示:
![img.png](img.png)

### 说明:
架构整体自底向上,共分为7层,根据实际情况,自行选择合适的组件,添加对应的处理逻辑。
1. 数据源:实际业务场景的数据来源,接收的数据可能不同,需要根据实际情况进行修改。
2. 数据传输层:数据源与数据解析层之间的数据传输层,一般使用消息队列进行数据传输,如kafka,nsq,也可使用其他的消息队列,如rabbitmq,mqtt等,请自行添加对应的消息队列组件,也可使用http进行数据传输。
3. 数据解析层:对数据传输层接收到的数据,进行分类解析,请自行添加实现对应的解析逻辑组件。
4. 数据处理层:对解析后的数据进行业务处理,根据世界业务,对数据分类后的数据进行处理,归并,聚合等,请自行添加实现对应的处理逻辑组件。
5. 数据存储层:对处理后的数据进行存储,根据业务逻辑,存储到不同的库中,根据实际情况,选择不同的数据库进行存储,如mysql,mongodb,ElasticSearch等,请自行添加实现对应的存储逻辑组件。
6. 数据分析层:对存储在各个库中的数据,进行实际的业务逻辑处理,请自行添加实现对应的分析逻辑组件。
7. 数据展示层:对分析后的数据进行展示,根据业务逻辑,展示到不同的页面,如web页面,app页面,小程序页面等,请自行添加实现对应的展示逻辑组件。