没有合适的资源?快使用搜索试试~ 我知道了~
项目总结 项目总结 项目总结
需积分: 5 0 下载量 29 浏览量
2023-10-29
17:55:28
上传
评论
收藏 3.31MB DOCX 举报
温馨提示
试读
47页
项目总结
资源推荐
资源详情
资源评论
第 7 章 项目总结
1 请介绍一下你的项目
学成在线项目是一个 B2B2C 的在线教育平台,本项目包括了用户端、机构端、运营端。
核心模块包括:内容管理、媒资管理、课程搜索、订单支付、选课管理、认证授权等。
下图是项目的功能模块图:
项目采用前后端分离的技术架构,使用 Spring Cloud 技术栈构建微服务,数据库采用 MySQL
,还使用了 Redis、RabbitMQ、Elasticsearch 等技术。
技术栈如下图:
2 项目技术架构相关
2.1 项目采用什么技术架构?
项目采用前后端分离的技术架构,使用 Spring Cloud 技术栈构建微服务,数据库采用 MySQL
,还使用了 Nacos、Spring Cloud Gateway、Redis、RabbitMQ、Elasticsearch、XXL-Job
等技术。
2.2 微服务都用了哪些技术?
所有微服务基于 Spring Boot 构建,分为接口层、模型层、业务层。
1)接口层
提供与前端的 HTTP 接口实现。
Spring MVC、Spring Security Oauth2 、Swagger
2)模型层
提供 PO 类、DTO 类统一管理。
3)业务层
包括业务 Service 与 MyBatis Mapper。
使用 MyBatis-Plus 框架实现 Mapper 开发。
业务 Service 调用 Mapper 完成数据持久化。
全部 bean 被 Spring 进行管理。
基于 Spring 进行本地数据库事务控制。
使用 XXL-JOB 完成任务调度。
RabbitTemplate 和消息队列通信。
搜索服务基于 Elasticsearch 构建。
4)配置文件由 Nacos 统一管理。
5)微服务远程调用使用 Feign 实现。
6)服务注册中心使用 Nacos 实现。
7)使用 Spring Cloud Gateway 实现网关统一路由。
2.3 微服务的 maven 工程结构是什么样?
项目分模块进行 maven 工程构建,如下图:
1、项目由一个父工程对依赖版本进行统一管理、对打包规则进行定义。
2、项目由一个基本工程提供一些公用的工具类、架构基础类库。
3、每个模块基本上分为四个工程如下:
xuecheng-plus-content-api:接口工程,为前端提供接口。
xuecheng-plus-content-service: 业务工程,为接口工程提供业务支撑。
xuecheng-plus-content-model: 数据模型工程,存储数据模型类、数据传输类型等。
xuecheng-plus-content:内容管理模块父工程,负责聚合 xuecheng-plus-content-api、
xuecheng-plus-content-service、xuecheng-plus-content-model。
2.4 Nacos 有什么用?怎么用?
Naocs 作为本项目的服务注册中心和配置中心。
服务注册中心:也叫服务发现中心,微服务将自己注册到服务注册中心,服务间远程调用通过
服务注册中心获取目标服务的地址,从而进行远程调用。
市面上的服务注册中心有:Zookeeper、Eureka、Nacos、Consul,本项目使用 Nacos。
配置中心:统一管理微服务的配置文件。
市面上的配置中心有:Spring Cloud config、Apollo、Nacos。本项目使用 Nacos。
微服务中怎么用 Nacos?
1、作为配置中心
1)首先配置 nacos-config 依赖
Java
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-
config</artifactId>
</dependency>
2)在 nacos 添加配置文件
添加配置文件注意四部分:namespace、group、dataid 及文件扩展名。
namespace:命名空间,项目的运行环境。
group: 项目名
Dataid: 包括三部分:服务名、环境名、扩展名,
Dataid 举例:content-service-dev.yaml 配置文件 由(content-service)-(dev). (yaml)三
部分组成
content-service:第一部分,它是在 application.yaml 中配置的应用名,即
spring.application.name 的值。
dev:第二部分,它是环境名,通过 spring.profiles.active 指定,
Yaml: 第三部分,它是配置文件 的后缀,目前 nacos 支持 properties、yaml 等格式类型,本
项目选择 yaml 格式类型。
示例图如下:
3)在项目工程配置 boostrap.yml
在 boostrap.yml 中配置 nacos 的地址,启动工程将会请求 nacos 读取配置信息,下边是个例
子
Java
spring:
application:
name: content-api
cloud:
nacos:
server-addr: 192.168.101.65:8848
discovery:
namespace: dev1010
group: xuecheng-plus-project
config:
namespace: dev1010
group: xuecheng-plus-project
file-extension: yaml
refresh-enabled: true
2、作用服务发现中心
1)首先配置 nacos-discovery 依赖
Java
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-
discovery</artifactId>
</dependency>
2)启动微服务,自动上传到 nacos
剩余46页未读,继续阅读
资源评论
xiaoli8748_软件开发
- 粉丝: 3286
- 资源: 1338
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功