单体版本运行
[一]简介
Dante Cloud Athena(单体版) 是从 Dante Cloud 中提取出来的,可以独立运行的,基于 Spring Authorization Server 的,前后端分离的、单体式多租户后台管理脚手架。
Dante Cloud Athena 从某种意义上讲并不是一个完整的项目,其核心代码就仅是 authentication-spring-boot-starter
而已。需要通过编译 Dante Cloud 生成 authentication-spring-boot-starter
即可以使用。
之所以会衍生出 Athena(单体版)系统,一方面,是因为不管是单独搭建基于 Spring Authorization Server
、Spring Security
的后台管理脚手架,还是构建基于 Spring Cloud 的分布式微服务架构,只要是前后端分离模式的架构,Spring Authorization Server
和 Spring Security
组件的使用方式以及代码的编码内容都是相同的,完全可以通用,没有必要重复编写。
另一方面,基于Spring Cloud和Spring Cloud Alibaba的微服务架构,已经成为应用建设的主流方案。但是不可否认的是,搭建一套微服务架构所需的基础架构越来越多,也越来越复杂,所需的配套资源也越来越大。仅仅是在开发电脑上搭建一套运行开发调试环境,其复杂度和所需的资源也不容小觑。而很多应用,特别是小型应用,在早期开发中或者用户量不大的前期完全没有必要上一整套微服务,额外增加复杂度。很多情况下一套单体的,前后端分离的后台就足以满足。
注意
这里为什么强调 前后端分离
?因为,前后端不分离的架构,在不涉及移动端等其它端的情况下,不需要使用 Token,使用 Session 即可以解决大部分需求。那么,架构的设计、开发方式以及相同组件的使用方式就会不同。
非前后端分离架构,只使用
Spring Security
就可以构建一套完整的系统了。除非涉及移动端等其它端,才会用到Spring Authorization Server
。这种方式深究下来其实也算是前后端分离
。
正因为以上的考虑,才构建的 Dante Cloud Athena。其实只要核心代码写的足够通用,单体式架构就自然而然的产生了。
Dante Cloud Athena 不需要搭建 Nacos,ELK,Sentinel,Skywalking 等诸多基础设施,只要一个数据库就可以独立运行,而且具备微服务架构除服务管理以外的所有功能。不仅编译和运行速度有几倍的提升,而且只要代码规范,分包合理,可以快速无缝迁移到微服务架构。这有助于在项目早期快速建设项目,方便开发人员在本地进行开发以及技术研究。如果你没有大量的时间和资源搭建微服务架构,那么就可以尝试使用 Dante Cloud Athena,可以从另一个角度快速,全面地了解 Dante Cloud。
提示
Dante Cloud Athena 系统的出现,从另外的角度证明了 Dante Cloud 代码的质量和水平。
[二]后端运行
单体版本后端需要的基础设施组件非常简单,仅需要数据库和Redis即可。这里就略过具体的安装和部署说明,需要了解相关的内容,可以查阅 【基础组件安装配置】 章节
[1]创建数据
这里以 PostgreSQL 为例,在 PostgreSQL 自带的命令行工具中,执行以下命令:
// 创建用户 athena 密码是 athena
CREATE USER athena WITH PASSWORD 'athena';
// 创建数据库 athena, 并将用户 athena 分配给该数据
CREATE DATABASE athena OWNER athena;
// 将数据库 athena 的所有权限分配给 athena
GRANT ALL PRIVILEGES ON DATABASE athena TO athena;
[2]编译代码
检出工程代码,进行编译。这里与微服务版本相关操作相同,需要了解相关的内容,可以查阅 【检出代码创建工程章节】 章节
提示
自 3.3.5.0 版本起,为了提升使用的便捷性,单体版代码已经合并至 Herodotus Cloud 工程中。无需再像原来一样,需要检出两个工程,要先编译 Herodotus Cloud 工程代码,才能使用单体版本。
[3]创建数据表
代码检出后,在工程中找到 herodotus-monomer-application
, 修改工程下 appliation.yml
中相关的配置信息。主要修改数据库连接和Redis连接即可。
然后,启动 AthenaApplication
应用。AthenaApplication
正常启动之后,会自动创建数据表以及自动完成基础信息的采集。
如果看到有数据库表创建,同时
sys_authority
、sys_interface
、sys_attribute
等表中有数据,证明数据库表创建成功。
[4]数据库初始化
在工程中 herodotus-monomer-application
模块下,找到数据库初始化脚本,初始化数据。这里原理与微服务版本相同,如果想要使用自动初始化操作,可以查阅 【数据库初始化】 章节
[5]重置缓存
原理和设计与微服务版本完全想通,可以查阅 【重置缓存】 章节
[6]启动服务
以上步骤操作完成之后,再次启动 AthenaApplication
应用即可以使用。整个安装部署工作就完成了。
[三]前端运行
[1]部署编译
Dante Cloud Athena(单体版)前端与 Dante Cloud(微服务版)前端,使用的是同一套代码。所以,部署方式和运行方式,与微服务版本完全相同,具体可以查阅 前端系统运行 章节。
重要
这里唯一需要注意的是,前端工程有一个参数 VITE_PROJECT
需要进行特别的修改。
VITE_PROJECT
的值,如果是 herodotus
则表示是微服务版,其它任意字符串或者空值指定是单体版
[2]运行验证
Dante Cloud Athena(单体版)前端的运行验证方式也与 Dante Cloud(微服务版)前端完全相同,具体可以查阅 前端系统运行 章节。