代码拉取完成,页面将自动刷新
本人是PHPER,但是Go是小白一名,本项目是 Go + vue 实现的后台管理系统本系统的架构理念为DDD(Domain Driven Design:领域驱动设计)模式(注:每个人对DDD的理解不同),该项目的代码质量不是很高,但是我会不断的改进不断的优化
(感觉代码不好,不要喷我哦)
线上体验地址体验地址中的文件操作功能已经是单独的服务了,已经是实现了服务的注册与发现功能。
[在线预览] : http://124.221.89.251:90/
账 号:test
密 码:1234567
超级管理员
账 号:SunXQ
密 码:123456
测试权限账号
账 号:test
密 码:1234567
介绍:把文件功能拆分成一个单独的服务实现简单的微服务,通讯使用 GRPC (本项目中的file功能只维护web成的http接口,pkg、api(grpc接口)也单独部署)
1. File、Pkg、Api、Log服务地址
- File:https://gitee.com/xiao_hange/go-admin-file
- Pkg: https://gitee.com/xiao_hange/go-admin-pkg
- Api: https://gitee.com/xiao_hange/go-admin-api
- Log: https://gitee.com/xiao_hange/go-admin-log
2. Proto文件生成使用的是Buf 代替了 Protoc 的使用 ,根目下的 buf_gen.yaml 为 buf命令使用的配置文件
- buf generate .\server\api\proto\ .\server\api\proto\ 为啥项目中存放proto文件的地方
1. 用户管理
2. 角色管理
3. 权限RBAC(支持 操作权限 ,查看权限,支持菜单通配符和一个页面多个权限配置)
4. 文件管理(oss、cos)图片视频上传、表格导入导出,大表格使用队列异步发送邮件等
- 第一种:下载方式是生成到本地在通过邮件的方式发送到对应的邮箱(这样服务器上需要定时清理)
- 第二种:下载方式是生成文件直接上传到Cos上,通过邮件的方式给到下载链接进行下载
5. 新增log可视化 ( Elasticsearch + FileBaet + Kafka + Kibana)
- 目前收集时候 k8s 上 log (主要数据 Gorm log)
6. 添加短信服务商、oss、cos等配置
7. 一键代码生成
8. OpenTelemetry 支持Gin、Mysql、Redis链路追踪,适配Zipkin、Jaeger
- 接口添加了链路的追踪的开关(在要上报的接口中添加以下代码)
- spanCtx := context.WithValue(ctx.Request.Context(), "Enable", true)
9. Prometheus数据监控支持 Gin Http、Mysql、Redis等监控
10. 消息队列(Kafka、RabbitMq)
11. Grafana 数据分析与监控
12. 自动化部署项目(CI/CD)
- 使用 Jenkins 的 Pipeline 流水线一件部署到 K8S
- 构建镜像到远程仓库/Jenkinsfile 文件在server/build 文件中
- k8s 文件在server/docker中 Deployment 和 Service 配置都在go-admin.yaml中
- 安装kubectl 和 配置链接远程的K8S
13. 服务注册与发现功能(目前支持:Etcd、Consul)
- 暂时实时读取配置发送短信不支持依赖注入的方式,后续会这块进行改进(有想法的小伙伴可以和我一起完成)
- 需要实时修改配置文件实现短信发送需要全局变量的方式实现
- 需要在 server/internal/global 文件中定义全局变量
- 在 InitTencentSms 需要给该 全局变量赋值在方法中已有注释
- 需要在main 中的InitWebServer 附上初始化值已有注释
- InitEtcdSetting 是实时监听远程配置中心的数据有没有变化 远程配置中心使用的是Etcd
- Etcd 的安装使用的是Docker安装 启动需要 docker-compose up
- etcd 简单操作命令 (还需要安装etcdctl)
- 获取数据 etcdctl --endpoints=127.0.0.1:12379 get /xxxx
-. 存放数据 etcdctl --endpoints=127.0.0.1:12379 put /xxxx xxxx
-. 把配置文件加载到etcd中
-. win etcdctl --endpoints=127.0.0.1:12379 put /xxxx (Get-Content -Raw 你要导入的文件.yaml)
-. liunx etcdctl --endpoints=127.0.0.1:12379 put /xxxx "$(<你要导入的文件.yaml)"
- 下载 (会有一些慢)curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
- 添加执行权限 chmod +x kubectl
- 移动到可执行文件目录中 sudo mv kubectl /usr/local/bin/
- 编辑远程看k8s配置 vim ~/.kube/config (配置信息去对应的服务平台获取即可)
- 查看配置是否成功 kubectl cluster-info
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。