我的架构演进——2018年8月23日
2018-08-23 本文已影响0人
兔子Tony的主人
主要是想说明,我接下来的文章,是从一个项目,已经做了一小半的时候开始的,并不是从开始做的时候开始的。所以有些文章,可能大家还不太理解,为什么突然写某某内容。
当前是为了给自己攻关技术的过程,进行一个比较详细的记录。
不过以后会补充项目开始的内容。并且在攻关所有的技术后,会梳理文章,按照更容易理解的顺序,重新写。
下边的内容是做一个切入点,理解我目前正在做什么。
目前项目架构演进示意图
-
图一最初的架构就是在一台服务器上装上数据库,然后启一个jar包,然后就可以从客户端访问了。
此时还没有加入用户管理和权限功能。可以使用所有功能。
最初的架构示意
-
页面和逻辑处理放在一起,是很容易做,但是考虑到目前开发要求多变多样等情况,还是毅然决定投入前后端分离的怀抱。
我的前端用react+antd+dva+umi,做好之后用nginx负责静态页面展示,前后台交互用restfulAPI方式交互。
目前已经做出来了几个功能,在没有用户和权限的情况下,可以正常使用。
基本的前后分离架构示意
-
这里是我想要的一种状态的雏形。
客户端的所有请求,都通过nginx进行是否登录判断。如果登录,则照常处理。我用正确的token判断是否是登录状态。即有token,并且token正确。如果没有token或者token不正确则跳转到登录页面。
后续将扩展,如果token不正确则跳转到警告页(警告非法登录,2秒后跳转到登录页),即有token但是token不正确。
登录时,用nginx+lua判断用户,初始化登录状态至redis,并返回token令牌。
后续将增加权限管理功能,在返回token令牌的同时,返回该用户的权限。
前后分离,并带单点登录和权限管理架构示意
目前项目的状态
当我下定决心在简书上写博客时,我正好在阿里上购买了服务器。准备好一个伪生产环境,然后准备打通自己项目上的任督二脉。也就是攻关技术,用nginx+lua+redis/postgre来实现自己用户管理/登录,以及权限的管理。
所以,说到在这里,主要就是想说明我的这一系列文章的内容,好像并不是从头开始。