前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务开发不再烦恼,Simple Adim全都给你!

微服务开发不再烦恼,Simple Adim全都给你!

作者头像
希里安
发布2023-10-30 18:36:40
3600
发布2023-10-30 18:36:40
举报
文章被收录于专栏:希里安

前期我们基于vue+gin的模式开发了一个简单的后台运维开发管理系统,不过主要面向入门级开发,熟悉整个开发流程,并且没有涉及数据库的使用。而根据我的运维开发写作计划来看,我们的目的就是在六月底之前开发一款属于咱们自己的开源项目,主要是运维开发的管理平台,虽然不求大而全,但是基础的功能设计必须有,这样的项目对于自己和其他开发者才算是有价值的,那么如何做到,除了有自己的想法之外,也要学习他人优秀的项目,避免一些功能重复造轮子,从中也能学习到优秀的开发思想以及规范,对于后期的维护扩展或重构也是及其有益的。

那么今天我们就来介绍一款比较完善的基于go-zero的分布式微服务后端管理系统脚手架,名字叫做Simple Adim。这个项目提供了丰富的后台管理功能,而且支持k8s快速部署,可以帮助开发者快速开发高并发微服务集群,而且项目是可以自用和商用的。

先摆出Simple Adim项目地址:

Github:

代码语言:javascript
复制
https://github.com/suyuan32/simple-admin-core

Gitee:

代码语言:javascript
复制
https://gitee.com/hopefire/simple-admin-core

再说说go-zero又是什么呢,简单来说就是一款云原生微服务框架客户端。Github星星数高达24k的项目,官方是这么介绍的:

go-zero 是一个集成了各种工程实践的 web 和 rpc 框架,具有高性能、易扩展和低门槛的推特性,感兴趣的朋友可以自行查阅:

项目地址:

代码语言:javascript
复制
https://github.com/zeromicro/go-zero

官网简介:

支持以下的功能:

  • 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
  • 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
  • 岗位管理:配置系统用户所属担任职务。
  • 菜单管理:配置系统菜单,操作权限,按钮权限标识,接口权限等。
  • 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  • 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  • 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  • 会员管理:管理注册会员信息
  • 接口文档:根据业务代码自动生成相关的api接口文档。
  • 代码生成:根据数据表结构生成对应的增删改查相对应业务
  • 服务监控:查看一些服务器的基本信息

再来看看具体的页面:

在线预览地址如下:

代码语言:javascript
复制
http://101.132.124.135/

整体页面也就是主流后台管理布局页面,左侧导航栏有三个示例选项,但导航栏的菜单选项是可以通过ui界面直接添加的,这也是亮眼细节之一。再看看系统管理里面的子项:

是包含了在介绍页中的所有功能的,刚才提到的细节之处菜单管理就在第一栏:

是可以直接添加目录或者菜单的:

至于角色和用户以及部门管理这里就不介绍了,看看这个API管理:

目前simple admin实现了API数据库的管理功能,可以在这个基础上自行开发添加:

其他的就不一一介绍了,大家可以自行体验,比如导航栏模式更改等都是vbean admin模式所具有的。

接下来就是二次开发,介绍下基本的要求:

涉及技术栈:

代码语言:javascript
复制
Go-zero+Ent+Vben Admin+Go Swagger+Ant Design
vue+casbin+kafka+GORM+Mysql

看着涉及的比较多,不要怕,一个一个拆解,就能有机组合了。

1、环境需求

代码语言:javascript
复制
golang 1.20 +
nodejs 18.8.0 +
mysql 8.0.21 + | MariaDB 10.7 + | Postgres
13 + (Postgres 14 推荐)
redis 7.0 +
go-swagger
Simple Admin Tool

注意,官网推荐在 linux 下开发,因为需要用到 make 命令,官方在 Ubuntu 22.10 环境下开发.

Windows 用户建议在 WSL 环境下开发, 你也可以自行配置环境:

代码语言:javascript
复制
首先安装 git , 我们需要 git
bash 命令行执行 linux 命令
其次需要安装 make 命令, 我们通过 Chocolatey 进行安装
# 在管理员状态下的POWERSHELL 执行
Set-ExecutionPolicy Bypass -Scope Process
-Force; [System.Net.ServicePointManager]::SecurityProtocol =
[System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object
System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
## 然后执行
choco install make

安装完成 make 后重启 IDE 即可,IDE 的命令行均选择 git bash

前端代码:

代码语言:javascript
复制
git clone https://github.com/suyuan32/simple-admin-backend-ui.git

后端代码:

代码语言:javascript
复制
git clone https://github.com/suyuan32/simple-admin-core.git

docker部署:

在 deploy/docker-compose/all_in_one 文件夹下

代码语言:javascript
复制
1. 启动docker-compose
docker-compose up -d
2. 初始化数据库
http://localhost/init
3. 重启 API
K8s 部署:
执行 deploy/k8s/setup.sh

开发流程:

如果感兴趣的话,可以贡献你的pr:

代码语言:javascript
复制
Fork 代码!
创建自己的分支: git checkout -b feat/xxxx
提交你的修改: git commit -am 'feat(function): add
xxxxx'
推送您的分支: git push origin feat/xxxx
提交pull request

到这这个项目的介绍就结束了,前端可以参考vben admin,数据库管理涉及ent,restfulAPI涉及go swagger 适用于微服务系统开发,casbin是用于权限管理的框架基于RBAC访问控制模型,rpc(remote procedure call)涉及go zero微服务框架,相关的命令也需要好好研究一番。

这里我觉得可以学习使用一下ent这个框架,github star数超13k,是一个简单又功能强大的Go语言实体框架,因为simple admin的推荐,我也正在学习使用,主要用于管理和产讯数据库数据,支持的数据库有pg、mysq、sqlite、sql server。

项目地址:

代码语言:javascript
复制
https://github.com/ent/ent

后端涉及的知识点也还是比较多,好的项目需要学习其思想,慢慢消化,相信未来的某一天会被咱自己灵活使用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 希里安 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档