市面上的后台快速开发框架,例如若依等admin框架,通常只提供了后台管理端的开发支持,而缺乏对客户端(C端)业务的完善支持。在实际应用中,我们面临着一系列问题。
首先,将C端业务逻辑直接集成到后台管理端存在潜在的安全风险。这可能导致用户权限越级,进而危及整个管理端数据的安全性。
其次,二次开发这些admin框架时,需要深入理解并适应它们的项目代码逻辑。由于开发习惯和代码风格的不同,这可能导致不必要的困扰和适应期。
随着业务的不断增长,我们逐渐意识到所有服务都放在一个单一服务中是不合理的。业务的复杂化使得我们需要更灵活的解决方案,而这包括对服务的有效拆分。
在这一背景下,我们必须认识到随着业务的不断复杂化,单一服务的模式已经无法满足需求。因此,我们需要考虑服务的拆分,设计一个更合理的分布式架构,以应对多样化的业务需求。这不仅有助于提高系统的可维护性和扩展性,还能够降低潜在的风险,并更好地满足未来业务的发展和变化。通过合理的服务拆分,我们能够更好地管理和部署各个业务模块,使整个系统更加健壮和适应性强。
系统整体结构分为四个主要部分,分别是用户端、网关、管理端和基础服务。 用户端: 用户端是业务的具体实现部分,需要由开发者自行进行开发和编写。这一部分负责处理具体业务逻辑,包括用户交互、数据展示等。 网关: 网关主要用于请求分发,充当前端访问后台的唯一入口。网关的作用在于统一处理前端请求,将其分发给相应的业务模块或服务,起到了路由和调度的作用。 管理端: 管理端主要负责业务的管理功能。其中,管理端的绝大多数功能是可以直接复用的,用户只需关注具体的业务实现。这使得开发者能够更专注于业务逻辑而无需过多关注管理端的通用功能。 基础服务: 基础服务包含一系列基础设施,如资源中心、配置中心、定时任务等。这些服务提供了系统运行所需的基本支持,为其他模块提供了底层的支持和服务。基础服务的存在有助于系统的稳定性和可扩展性,同时提供了一些通用的功能,避免了在各个业务模块中重复实现相同的基础功能。 这种系统设计使得各部分功能清晰划分,提高了系统的可维护性和扩展性。同时,通过将通用功能抽取到基础服务中,可以更好地实现功能复用,减少重复开发,提高开发效率。
- 前端:使用字节 Arco中后台最佳实践框架进行开发
- 后端:使用B站 Kratos一套轻量级 Go 微服务框架进行开发
- 缓存:redis
- 数据库:mysql
项目支持单台服务器以及k8s集群。
主要是存放了整个基础管理平台的前端代码,仓库地址:admin-platform-web
主要是负责整个系统的前端到后端服务之前的路由调度,仓库地址:gateway
主要是基础管理平台的后端基础服务,主要是负责菜单、部门、角色、鉴权等,仓库地址:manager
主要是基础管理平台的后端基础服务,主要是负责整个系统的配置管理,能够实现配置的实时变更,环境隔离等,仓库地址:configure
主要是基础管理平台的后端基础服务,主要是负责整个系统的静态资源文件管理,可对接阿里云、腾讯云对象存储,仓库地址:resource
go-platform 再次承诺,此框架将永久免费商用,纯爱发电~~