暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

希里安 2023-04-22
591

关注“希里安”,get更多有用干货!



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






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


先摆出Simple Adim项目地址:


Github

    https://github.com/suyuan32/simple-admin-core

    Gitee

      https://gitee.com/hopefire/simple-admin-core



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


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


      项目地址:

        https://github.com/zeromicro/go-zero









        官网简介:




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

        再来看看具体的页面:

        在线预览地址如下:

          http://101.132.124.135/

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

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

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

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


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



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







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

          涉及技术栈:

            Go-zero+Ent+Vben Admin+Go Swagger+Ant Design
            vue+casbin+kafka+GORM+Mysql

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


            1、环境需求

              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 环境下开发, 你也可以自行配置环境:

                首先安装 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


                前端代码:

                  git clone https://github.com/suyuan32/simple-admin-backend-ui.git


                  后端代码:

                    git clone https://github.com/suyuan32/simple-admin-core.git

                    docker部署:


                    deploy/docker-compose/all_in_one 文件夹下

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

                      开发流程:



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

                        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。


                        项目地址:

                          https://github.com/ent/ent


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


                          好了今天的分享就到这了,感兴趣的朋友别忘了点赞关注呀!







                          文章转载自希里安,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                          评论