阶段一:项目介绍与演示
一、课程目标
- 掌握软件开发周期
- 掌握云岚到家项目背景和功能模块
- 掌握项目核心业务流程
- 掌握单体架构和微服务架构的区别
- 掌握项目运行所需环境和中间件
- 掌握高可用集群架构设计思路
二、软件生命周期
- 一个软件系统不是直接写代码,而是从需求、设计、开发、测试、部署、运维逐步完成
<sheet sheet-id="AC9MGI" token="GG5zsRJwMhcnuktKShVcKKTHn69"></sheet>
- 运维在生命周期中的位置
运维不是只负责上线,而是贯穿项目运行阶段的核心角色。运维需要负责环境准备、服务部署、日志排查、监控告警、性能优化、故障恢复和版本发布。
三、项目背景介绍
1、云岚到家
- 云岚到家是一个本地生活服务平台,面向用户提供家政、维修、保洁、保养等预约服务
2、项目角色
本项目涉及如下角色:
- 家政需求方:通过用户端小程序完成在线预约下单、支付、评价、投诉、退款等操作。
- 家政服务人员:通过服务端APP完成在线接单、结算等操作。
- 家政服务公司:通过机构端完成在线接单、派单、投诉处理、结算等操作。
- 平台方:通过管理端完成服务人员管理、机构管理、订单管理、财务管理等操作,一笔完成的订单,结算时按照分成比例平台进行抽成。
3、业务流程
平台包括四个端:用户端(小程序)、服务端(app)、机构端(PC)、运营管理端(PC)。
- 用户通过平台在线下单、支付
- 家政服务人员和家政公司通过平台抢单
- 抢单成功服务人员去现场服务,平台跟进整个服务过程(服务前、服务中、服务后)。
- 服务完成后用户进行评价以及售后、退款等。
- 运营人员通过管理端完成服务人员管理、机构管理、订单管理等业务。
4、系统架构
- 项目是基于Spring Cloud Alibaba框架构建的微服务项目,采用前后端分离模式进行开发。
- 平台共包括四个端:运营端(PC)、服务端(APP)、机构端(PC)、用户端(小程序)。
- 网关我们用的SpringCloudGateWay网关,最前边是Nginx进行负载均衡。
- 服务层我们划分了运营基础服务、客户管理服务、公共服务、订单管理服务、抢单服务、派单服务、支付服务等微服务。
- 服务层用到了Nacos、XXL-JOB、RabbitMQ、Elasticsearch、Canal、Sentinel等中间件。
- 数据层用的是MySQL数据库,使用ShardingShphere进行分库分表,还用到了消息队列RabbitMQ、Redis缓存及Elasticsearch等中间件。
- 系统架构图

5、后端服务
<sheet sheet-id="8TljuF" token="GG5zsRJwMhcnuktKShVcKKTHn69"></sheet>
四、单体架构和微服务架构
1、微服务架构优势
<sheet sheet-id="kH8I8O" token="GG5zsRJwMhcnuktKShVcKKTHn69"></sheet>
2、微服务架构框架和核心组件
- Spring Cloud Alibaba(SCA)是阿里巴巴基于 Spring Cloud 体系构建的一套微服务解决方案,提供服务治理、配置管理、服务调用、限流熔断、消息队列、分布式事务等能力
- 服务注册
- 配置管理
- 服务调用
- 限流熔断
- 分布式事务
- 网关
- 核心组件
- Nacos注册中心:阿里开源的服务发现和服务配置平台,在微服务架构中,起到以下作用:
- 服务发现和服务注册:Nacos提供了一个服务注册中心,可以让微服务在启动时注册自己的信息,例如服务的名称、IP地址、端口号等。同时,Nacos也提供了服务发现的功能,允许微服务找到并调用其他的微服务。
- 配置动态更新:在微服务架构中,微服务的配置信息(如数据库连接参数、外部API接口地址等)需要根据环境或业务需求进行变动。Nacos允许将这些配置集中存储和管理,并在配置发生变动时,动态地推送给相应的微服务,无需重启服务即可更新配置
- Gateway网关:在微服务架构中,网关起到了路由的作用,例如,用户需要请求一个特定的微服务,而这个请求会先通过网关,然后网关会将其路由到正确的服务上。
- Sentinel:阿里巴巴开源的一款面向分布式微服务的流量控制和高可用保护组件,在 Spring Cloud Alibaba 中主要用于实现限流、熔断降级、热点参数限流、系统保护、集群限流以及实时监控等功能
- Seata:一款开源分布式事务解决方案,主要用于解决微服务架构下多个服务、多个数据库之间的数据一致性问题。它通过全局事务协调器(TC)、事务管理器(TM)和资源管理器(RM)实现跨服务事务管理,Seata 能够保证在订单、库存、支付等多个服务参与的业务场景中,当某个环节失败时,整个事务能够统一回滚,从而避免数据不一致问题,保证系统最终一致性
同步说明
本文由飞书云文档同步生成。涉及命令、SQL、配置示例时,请以飞书源文档和实际环境执行结果为准。