3.爱收藏——系统架构

3.爱收藏——系统架构

1.简介

爱收藏系统,以微服务为主要技术,系统按照业务来划分模块,前后端分离。存储以关系型数据库mariadb为主,redis存储登录相关数据。前端使用vue开发,nginx作为静态文件服务器。使用docker部署,容器按照功能分为基础服务、初始化服务、后端服务、前端服务。使用portainer作为docker管理工具。github作为代码仓库。镜像的构建和运维,使用shell脚本。

2.架构说明

  系统分为4大模块:数据层、处理层、展示层、效率工程。整体架构图如下:

系统架构图

2.1数据层

数据层,是系统所有数据存储中心,使用Mariadb和Redis。

  Mariadb,存储各个业务需要持久化的数据,业务包括包括用户信息、网址信息。提供一个数据库实例,有用户信息、网址信息两个数据库。

  Redis,存储用户模块登录用户的信息、其他模块需要缓存的信息,包括用户token、用户角色权限关系,以及各个模块需要暂存的信息。

2.2处理层

按照业务来划分微服务,每个微服务负责一个业务内容。使用spring Cloud技术实现微服务。

  微服务实例包括:

  注册中心:使用Eureka实现注册中心,用于各个微服务进行服务注册和服务发现。其他微服务都需要向注册中心注册,各个微服务之间的调用使用FeignClient,从注册中心发现需要调用的服务实例。

  认证中心:实现用户、角色、权限管理,提供用户、角色、权限的增删改查接口。实现用户认证、鉴权,提供用户登录、注销,以及权限校验接口。作为各个微服务的资源访问鉴权中心,用户访问系统资源,会被拦截,再去请求认证中心,判断当前用户是否有访问该资源的权限。

网址管理服务:实现首页网址、个人网址管理。提供首页网址、个人网址的增删改查接口。

系统管理服务:实现订阅功能,定时发送订阅邮件

2.3展示层

  使用vue实现,界面元素使用ElmentUI。主要功能是调用后端接口,展示数据。

  nginx作为前端静态文件的服务器,同时作为后端接口的转发代理和负载均衡

  集成了github登录功能。

  集成了github留言功能,使用github的issue功能实现。

五、效率工程

 1、docker

  镜像划分为3类:基础服务镜像、初始化镜像、后端服务镜像。

  基础服务镜像:为系统提供基本服务的组件,不包含业务数据。组件包括Mariadb、Redis、Nginx。

  初始化镜像:系统初始运行需要执行的操作。包括认证中心建库建表sql脚本、网址管理服务建库建表sql脚本、前端静态文件。初始化镜像只需要运行一次。

  后端服务镜像:后端各个微服务。

  docker默认是没有非常友好的可视化界面,为了方便操作和管理镜像、容器,使用portainer系统。通过portainer,可以在界面上管理镜像、容器,查看系统运行状态,查看各个容器的日志等操作,替代了在docker中使用命令操作的方式。

 2、shell

  为了更方便的解决系统开发部署过程中,一系列的手动操作,使用shell脚本来实现自动化操作。shell脚本分为以下几类:

  (1)镜像制作

    镜像制作分为后端服务镜像的制作、前端镜像的制作、mariadb初始化镜像的制作。

    后端服务镜像的制作,shell脚本中先调用mvn的构建方法,将java项目构建生成jar包,再使用Dockerfile将jar包打成镜像。

    前端镜像的制作,shell脚本先调用npm的构建方法,将前端项目构成生成静态文件,再使用Dockerfile将静态文件打成镜像。

    mariadb初始化镜像的制作,shell脚本拷贝sql语句到一个文件夹中,Dockerfile中再将sql拷贝到镜像中。

    再在shell脚本中使用docker save命令将镜像生成tar包。

  (2)系统部署

    系统部署shell,先加载tar包,再删除之前的容器,再部署镜像。

  (3)镜像更新

    将本地镜像打成tar包,上传至服务器,在服务器上加载镜像。

  (4)系统清除

    清除掉系统相关的容器、镜像、挂载文件。

  (5)服务器登录

    远程登录服务器。

3.数据流程

整个系统的数据流程图如下:


系统数据流向图

1、用户通过浏览器访问爱收藏系统

2、静态资源由nginx直接,需要请求后端接口由nginx做代理转发

3、根据不同url,nginx转发不同请求到不同服务上

4、各个服务访问mariadb或者redis请求数据

5、各个服务会注册到注册中心,其他服务会先从注册中心找到需要请求的服务,再调用具体服务

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355

推荐阅读更多精彩内容