《kratos-base-project》 之 微服务出发
source link: https://studygolang.com/articles/35998
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Kratos Base Project
本项目为一个使用 kratos框架 创建的,基础的微服务项目模板, 以便于后续快速开发。
目前已经实现管理后台管理员和权限系统,已经实现按钮、接口级权限.
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
$ 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
$ 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/;
}
}
- 有任何建议,请扫码添加我微信进行交流。
Recommend
-
178
README.md Kratos Kratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具。主要包括以下组件:
-
188
Kratos Kratos是 bilibili 开源的一套Go微服务框架,包含大量微服务相关框架及工具。主要包括以下组件:
-
17
B站微服务框架Kratos详细教程(7)- 数据库 ...
-
11
github.com/go-kratos/kratos(以下简称Kratos)是一套轻量级Go微服务框架,致力于提供完整的微服务研发体验,整合相关框架及周边工具后,微服务治理相关部分可对整体业务开发周期无感,从而更加聚焦于业务交付。Kratos在设计之初就考虑到了高可扩展性,组件...
-
9
Kratos技术系列|从Kratos设计看Go微服务工程实践 - 腾讯云中间件的个人空间 - OSCHINA - 中文开源技术交流社区
-
4
kratos 微服务框架商城实战初识 kratos看文章之前推荐看一下
-
8
先来感受下用 kratos 快速创建项目 一、环境准备# 1.1 安装依赖软件 建议开启 GO111MODULE 1.2 安装 kratos cli
-
6
在上一篇 kratos quickstart 文章中,我们直接用 kratos new 命令生成了一个项目。 这一篇来看看 kratos API 的定义和使用。 一、krat...
-
8
一、简介# 关于服务注册和服务发现介绍,我前面的文章有介绍过 -
-
8
一、分布式链路追踪发展简介# 1.1 分布式链路追踪介绍
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK