《kratos-base-project》 之 微服务出发

ZQCard · · 2224 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

# Kratos Base Project 本项目为一个使用 [kratos框架](https://github.com/go-kratos/kratos) 创建的,基础的微服务项目模板, 以便于后续快速开发。 目前已经实现管理后台管理员和权限系统,已经实现按钮、接口级权限. [演示地址](http://kratos.niu12.com/#/system/adminstrator) PS:演示数据由定时任务服务,每10分钟初始化恢复demo数据库,可能会导致你的数据丢失 ## 项目目录 ``` ├── api // api proto文件和生成文件 ├── app // 服务集合 │ ├── administrator // 管理员服务 │ ├── authorization // 权限服务 │ ├── jobs // 分布式定时任务 │ ├── └── initDB // 初始化数据库 │ └── project // api接口服务 │ └── // api接口服务 ├── deploy // 部署文件 ├── pkg // 自定义包 ├── third_party // 第三方包 ├── web // 管理后台前端页面 基于vue-element-admin ``` #### 管理后台服务 - [x] 管理后台 #### 管理员服务 - [x] 登录退出 - [x] 管理员管理 #### 权限服务 - [x] 角色管理 - [x] 菜单管理 - [x] 权限管理 - [x] api管理 #### 其他 - [x] 定时服务 - [ ] 文件服务 - [ ] 短信服务 #### 运行方式 ##### 组件 管理后台web框架: vue-element-admin 服务注册与发现: ETCD 链路追踪:jaeger 数据库:mysql 缓存:redis orm: GORM ### 安装 ##### 数据库 1.导入sql ``` 文件位于docs/initSql ``` ##### 后端 1.下载 ``` $ go clone github.com/ZQCard/kratos-base-project ``` 2.安装依赖 ``` $ cd kratos-base-project && go mod tidy ``` 3.设置配置 以管理员服务为例, 配置文件位于service/configs/ 初始化sql文件位于 docs/initSql ``` $ vim ./app/administrator/service/configs/config.yaml ``` 4.运行项目 ``` $ kratos run ``` ##### 前端 1.安装依赖 ``` $ cd web && npm install ``` 2.启动项目 ``` $ npm run dev ``` ### 部署(docker) ##### 后端 可以参考kratos部署 (https://go-kratos.dev/docs/devops/docker) 1.服务部署 以管理员服务为例 app/ ``` $ cd app/administrator/service ``` 2.make打包docker镜像 ``` # PS:如果是打包admin镜像 app/project/admin/service 请执行 make dockerAdmin $ make docker ``` 3.运行容器 ``` # 注意端口映射设置, docker部署容器9000端口, 本地开发端口不能全是9000 docker run -p 9000:9000 --name kratos-base-project-administrator --restart=always -v /data/project/kratos-base-project/app/administrator/service/configs:/data/conf -d kratos-base-project/administrator-service:0.1.0 ``` ##### 前端 1.进入前端目录 ``` $ cd web ``` 2.编译 ``` $ npm run build:prod ``` 3.将dist文件夹上传至服务器 ##### nginx示例 ``` server { listen 80; listen [::]:80; server_name kratos.niu12.com; index index.html; root /data/project/kratos-base-project/web/dist; # 管理后台接口转发代理 location /api/ { # nginx代理设置Header proxy_set_header X-real-ip $remote_addr; proxy_pass http://127.0.0.1:8000/; } } ``` * 有任何建议,请扫码添加我微信进行交流。 ![扫码提建议](https://kratos-base-project.oss-cn-hangzhou.aliyuncs.com/f8f5dacdf87cf358c98c9eb60ce2a13.jpg)

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2224 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传