项目源码:https://github.com/liuwen766/OrderSystem.git
项目流程:需求分析、总体设计、详细设计、编码、测试、交付、验收、维护
项目技术栈:SpringCloud、SpringBoot、MyBatis、LayUI、thymeleaf
项目简要说明:使用微服务(SpringCloud)搭建的一个简易外卖订单系统。

写在前面:为什么要用微服务?

单体应⽤用存在的问题
1.随着业务的发展,开发变得越来越复杂。
2.修改、新增某个功能,需要对整个系统进行测试、重新部署。
3.一个模块出现问题,很可能导致整个系统崩溃。
4.多个开发团队同时对数据进行管理,容易产生安全漏洞。
5.各个模块使⽤用同一种技术进行开发,各个模块很难根据实际情况选择更合适的技术框架,局限性很
大。
6.模块内容过于复杂,如果员工离职,可能需要很长时间才能完成工作交接。
因此有些大型项目可能需要用到分布式微服务(spring cloud)
分布式服务:就是将一个复杂问题拆分成若干个简单的小问题,将一个大型的项目架构拆分成若干个微服务来协同完成(软件设计层⾯面)。将一个庞大的工作拆分成若干个小步骤,分别由不同的人完成这些小步骤,最终将所有的结果进行整合实现大的需求。
分布式服务治理的核心由三部分组成:服务提供者、服务消费者、注册中心。
在分布式系统架构中,每个微服务在启动时,将自己的信息存储在注册中心,叫做服务注册。服务消费者从注册中心获取服务提供者的网络信息,通过该信息调用服务,叫做服务发现。

需求分析

项目详细说明:首先来了解项目需求。本项目分为客户端和后台管理系统两个界面,客户端针对普通用户,功能包括用户登陆、用户退出、菜品订购、我的订单。后台管理系统针对管理员,功能包括管理员登陆、管理员退出、添加菜品、查询菜品、修改菜品、删除菜品、订单处理、添加用户、查询用户、删除用户。
外卖订单系统(基于微服务(SpringCloud)搭建)

总体设计

设计系统架构设计,①首先分配出4个服务提供者,account、menu、order、user。
account 提供账户服务:用户和管理员登陆。
menu 提供菜品服务:添加菜品、查询菜品、修改菜品、删除菜品。
order 提供订单服务:添加订单、查询订单、删除订单、处理订单。
user 提供用户服务:添加用户、查询用户、删除用户。
②接下来分配出1个服务消费者,包括客户端的前端页面和后台接口、后台管理系统的前端页面和后台接口,用户/管理员直接访问的资源都保存在服务消费者中,然后服务消费者调用4个服务提供者对应的接口完成业务逻辑,并通过 feign 完成负载均衡。

详细设计

4个服务提供者和1个服务消费者都需要在注册中心完成注册,同时注册配置中心,提供远程配置信息读取,服务提供者和服务消费者的配置信息保存在 Git 远程仓库,由配置中心负责拉取,关系如下图所示。
外卖订单系统(基于微服务(SpringCloud)搭建)
本系统共有8个模块组成,包括注册中心,配置中心,Git 仓库配置信息,服务消费者,4个服务提供者。
项目构成:(七个微服务: EurekaServer ConfigServer Menu User Account Order Client)
注册中心 → 服务配置中心 → 服务提供者:菜单服务、用户服务、登录服务、订单服务 → 服务消费者:客户端服务

编码(测试、交付、验收、维护)

1.创建父工程,pom.xml

2.注册中心

3.配置中心

4.服务提供者 order menu account user

5.服务消费者 client

后期可以做的优化:
①如何并发实现多用户登录。登录验证码,自动登录(仿照qq自动登录)等,登录成功(session作用域记录用户登录状态),失败(request记录错误信息)。
②加购物车功能(仿照美团)。
③支付功能。
④会员满减功能。
⑤添加条件查询功能。

相关文章:

  • 2021-05-20
  • 2021-11-29
  • 2021-10-14
  • 2021-11-22
  • 2021-04-27
  • 2021-12-16
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-15
  • 2021-11-12
  • 2022-12-23
  • 2023-02-14
  • 2022-12-23
相关资源
相似解决方案