《面向服务的软件系统》大作业选题报告

大作业选题报告

课程:面向服务的软件系统

学 号 姓 名

成员: 120L021011 , 石卓凡

成员: 120L020926 , 苏泽楷

成员: 120L020205 , 艾永亮

1.选题

1.1作业题目

选题2: 基于微服务框架开发项目

1.2题目概述

基于微服务的网络购物云平台

背景介绍:

当今,网络经济模式越来越流行,其中电子商务是其中最重要的组成部分,是利用互联网技术与传统信息系统相连接的一种动态商务模式,它能将有价值的信息高效地传输给顾客、经销商等,并能通过网络将他们紧密地连接起来,形成新的产业链。成熟的互联网技术让订货、支付、售后等服务集成到电子商务中。互联网进入传统流通领域后,电子商务也流行起来,这意味着一种全新的购物理念的形成和发展。网络购物云平台是电子商务的前端商务平台,他在整个商务活动的过程中扮演着非常重要的角色。网上购物系统也是一种商业信息系统,它具有强大的交互功能,能向用户提供各种信息资源,能使商家和用户之间能方便地进行信息传递,方便快捷地完成电子贸易。随着互联网广泛的应用和发展使得网名数量激增,市场需求越来越大。网上购物方式日益为大家所接受。互联网的飞速发展,已经颠覆了传统的信息采集、传递和外观,对劳动者的劳动技能和工作效率的提高,提供了前所未有的有利条件和推进作用。个人经营,企业等的经济收入增长大多得益于互联网的推广和应用。网络购物云平台使市场的传统营销思路走向终结,新型的线上线下整合营销模式得到了企业和社会的广泛关注和认可。

网络购物平台分为管理端和客户端:

管理端:

该管理系统可以登录管理员账号,登录员工账号,管理员可以实现对某个电商交易平台的员工,商品,品牌分类等进行管理与查询。后台管理系统中的信息以便于客户手机端可以对电商商品进行下单。

针对开题报告的演示初步设计(如下图):

图1:管理端初步demo页面设计

客户端:

客户可以进行登录,登录方式比如手机登录或者微信登录,然后对商品进行选购下单

展示结果类似于美团外卖(如下图):

图2:客户端计划仿照的美团外卖app页面

实现方案

使用的技术知识

分工层面 预期应用到的技术
前端 H5,Vue,ElementUI
后端 Springboot,springcloud
运维 Docker,k8s,jenkins
数据 Mysql,redis,mybatis plus

网络购物平台采用微服务基础,基于springcloud,解决服务与服务之间的解耦,利用h5,vue等作为前端

网络购物平台部署于k8s可以实现容器集群的故障迁移,资源调度等,服务器集群具有很强的可伸缩性。随着需求和负荷的增长,可以向集群系统添加更多的服务器。允许有多台服务器执行相同的应用和数据库操作。

网络购物平台利用了Jenkins实现持续、自动地构建/测试项目,监控软件开放流程,快速问题定位及处理,提高开发效率。

1.实现电商后台网络购物平台基本功能

2.1 Springboot+vue搭建网站,通过网站管理电商商品,数据库在云服务器上

初步需求:

管理端够对员工,商品,品牌分类进行管理与查询。后续可以根据实时需求添加对其余信息的管理

客户端能够进行购物下单,类似于简易版淘宝或者美团外卖。

设计方案:

在云服务器上运行mysql作为云数据库,数据库中含employee员工表,brand品牌表,good商品表;

图3.1:数据库表demo初步设计:

图3.2:数据库表demo初步设计:

本地Springboot+vue框架搭建分为:

(1).登录模块,设定admin管理员,以管理员身份登录index;

(2).index模块,由index模块可以进入员工管理,商品管理,品牌管理三个模块;

(3).员工管理,商品管理,品牌管理,每个模块对自己内容的管理都可以实现增删改查。

图4:管理端初步demo页面设计

(4)客户端模块,用于客户可以访问管理端存储的数据信息并且进行购物下单

2.从单体项目扩展为分布式项目

2.2 将上一个项目加入springcloud扩展为分布式微服务系统

初步需求:将单体项目变为多个微服务,需要有网关,服务注册中心等,有高并发性能

设计方案:

(1).加入Nacos注册服务中心

将之前的项目拆分成多个微服务,比如登录服务,员工管理服务,商品管理服务,品牌管理服务。微服务数据独立,不要访问其它微服务的数据库,微服务可以将自己的业务暴露为接口,供其它微服务调用。各个微服务之间的相互发现和互动都会通过nacos。

(2).加入feign远程调用

利用feign实现在各微服务之间发起远程调用;

在index模块利用feign进行远程调用员工管理服务,商品管理服务,品牌管理服务,实现数据库操作。

(3).加入gateWay网关

网关作为微服务入口,需要校验用户是是否有请求资格,如果没有则进行拦截,且实现跨域问题;

让员工管理服务,商品管理服务,品牌管理服务等一切请求都必须经过网关,并利用网关实现axios跨域请求问题。

(4).加入Sentinel实现流量控制

微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务;利用sentinel进行流量控制实时监控流量防止雪崩问题的出现。

3.项目部署上云

  1. 将项目利用docker进行打包

    初步方案:可以利用docker命令打包生成镜像之后上传于dockerHub

    部署环境:在本地虚拟机Ubuntu中安装配置docker环境,然后将项目打包发布于个人的docker Hub

    1. 将项目利用k8s部署到云服务器上,

初步方案:k8s读取dockerHub中的镜像,然后利用deployment部署pod,再利用service发布,并暴露端口供外网访问

部署环境:aliyun三台服务器使用centors系统,利用k8s实现1主2从,能够在云服务器上运行电商后台网络购物平台

4.项目实现自动化部署

  1. 将项目通过Jenkins实现CI/CD扩展能力

    需求:JenKins实现CI/CD

初步方案:Jenkins服务器安装配置Jenkins,创建任务,配置gitlab仓库地址,测试CI/CD是否成功,即Jenkins能否将Git仓库项目成功编译测试并发布到Tomcat服务器上

3.成员与分工

第一阶段Springboot+vue

分工任务 成员
数据库+后端 石卓凡
前端 艾永亮

第二阶段Springcloud

分工任务 成员
数据库+后端 石卓凡
前端 艾永亮

第三阶段docker

分工任务 成员
运维 石卓凡
运维 苏泽楷
运维 艾永亮

第四阶段k8s

分工任务 成员
运维 石卓凡
运维 苏泽楷
运维 艾永亮

第五阶段Jenkins

分工任务 成员
运维 苏泽楷

4.进度计划

1.前后端人员学习知识,Springboot+vue搭建网站通过网站管理电商商品

2022.10.10-2022.10.29

2.将上一个项目加入springcloud扩展为分布式微服务系统

2022.10.29-2022.11.12

3.运维人员学习知识,将项目利用docker进行打包

2022.11.12-2022.11.19

4.将项目利用k8s部署到云服务器上

2022.11.12-2022.11.26

5.运维人员学习知识,将项目通过Jenkins实现CI/CD扩展能力,直接部署在云服务器上

2022.11.26-2022.12.10

6.完善项目,对于项目中可能存在的问题和bug进行调试

2022.12.10-2022.12.20


《面向服务的软件系统》大作业选题报告
http://yoursite.com/2023/04/21/大作业选题报告_石卓凡_苏泽楷_艾永亮/
作者
Fars
发布于
2023年4月21日
许可协议