Java从单体到微服务打造房产销售平台
-
第1章 课程介绍
本章从整体上介绍课程有什么收获,以及课程如何安排,其中包括微服务的两个不同学习阶段–单体开发阶段(基于SpringBoot)和微服务改造阶段(基于SpringCloud),知识点梳理&问答:https://www.imooc.com/article/23408
- 1-1 课前必读(不看会错过一个亿)
- 1-2 课程导学试看
-
第2章 项目概要设计&数据表设计
本章会带着大家对房产销售平台一功能、模型、流程三个方面进行需求分析,之后我们将抽取出项目中的功能模型,分析功能模型之间的关联关系,同时在本章我们会对房产销售平台单体架构进行技术选型和架构设计,学习到做好技术选型有哪些技巧;之后会进行数据库设计,将功能模型落地到数据库中,并手把手带着大家使用Navicat Premiu…
- 2-1 项目需求分析
- 2-2 单体项目技术选型和架构设计
- 2-3 数据库设计概述
- 2-4 房产表设计
- 2-5 房产用户表,房产信息表设计
- 2-6 用户表设计
- 2-7 小区表,评论表设计
- 2-8 博客表,经纪机构表设计_音频.mp4
-
第3章 SpringBoot工程框架搭建与技巧
本章首先手把手教大家搭建Java,Maven开发环境,安装IDE工具STS; 然后以多种方式创建SpringBoot工程,并讲解SpringBoot的几大特性,pom文件接入SpringBoot的不同方式,内嵌servlet容器的接入与替换,Starter(起步依赖)的实现原理,SpringBoot与Mybatis,Freemarker等组件的整合,SpringBoot进行错误页处理, 自定义Starter,让大家…
- 3-1 开发环境搭建与验证(jdk,maven,sts)
- 3-2 创建SpringBoot工程
- 3-3 引入内嵌servlet容器
- 3-4 数据访问层搭建-整合MyBatis
- 3-5 数据访问层搭建—集成Druid连接池
- 3-6 表现层搭建-整合freemarker
- 3-7 表现层搭建-freemaker结构化布局
- 3-8 SpringBoot起步依赖stater
- 3-9 自定义SpringBoot起步依赖stater
- 3-10 maven多mudule工程实现
- 3-11 错误页面处理
- 3-12 学习spring boot技巧分享
-
第4章 用户注册及个人页面功能开发
本章会深入剖析SpringMvc的请求处理流程,并借助Guava Cache完成注册key的绑定,同时会详细介绍Guava Cache的存储数量限制,过期设置,事件监听器,之后使用Spring Mail + Spring Task完成异步发送激活链接;并通过Nginx搭建支持用户头像等静态资源的访问,之后会讲解用户注册、用户登录、用户鉴权的业务流程,并编写Sp…
- 4-1 SpringMVC整体流程讲解
- 4-2 用户注册-功能演示与流程讲解
- 4-3 用户注册-后端代码实现-1
- 4-4 用户注册-后端代码实现-2
- 4-5 用户注册-guava cache及异步spring mail发送激活链接
- 4-6 注册流程-安装ngnix-1
- 4-7 注册流程-安装ngnix-2
- 4-8 登录流程-后端代码实现
- 4-9 用户登录流程-spring拦截器实现鉴权-1
- 4-10 用户登录流程-spring拦截器实现鉴权-2
- 4-11 spring拦截器编写步骤
- 4-12 个人页面开发
- 4-13 SpringBoot单元测试
-
第5章 房产和推荐功能开发(分页组件、Ajax、Redis)
本章我会封装一个后端分页组件来完成房产列表分页功能,并带领大家应用Ajax技术实现房屋的评分和收藏, 之后会讲解如何通过table join查询来实现房屋收藏列表, 使用Redis的sorted sort数据结构来实现热门推荐,使用Jedis客户端工具进行Redis操作,每个功能的实现我都会带大家由功能演示到代码实现再到验证测试,然后…
- 5-1 房产列表实现-1
- 5-2 房产列表实现-2
- 5-3 房产列表实现-3
- 5-4 房产列表实现-4
- 5-5 访问详情的实现
- 5-6 经纪人详情实现
- 5-7 热门房产的实现
- 5-8 首页推荐的实现
- 5-9 添加房产实现-1
- 5-10 添加房产实现-2
- 5-11 添加房产实现-3
- 5-12 通过ajax实现收藏与评价
-
第6章 上线部署和监控实战(SprinBoot插件和工具)
本章会介绍Spring-Boot-Maven-Plugin的特性,以及如何配置SpringBoot maven打包工具,并通过SprinBoot提供的maven Plugin工具进行打包, 之后会讲解如何在工程接入SpringActuator来监控我们的应用,当然除了内嵌的监控组件,还会带来大家一起搭建SpringBoot Admin作为我们的外部可视化监控平台,并介绍SpringBoot Admin…
- 6-1 单体架构上线部署
- 6-2 通过SpringbootActuator进行健康监控
- 6-3 通过Spring Admin搭建简单监控平台
-
第7章 单体架构的不足和解决方案
本章会介绍单体架构的优势和不足,还会讲解微服务架构是如何解决单体架构的问题。微服务也会带来一些挑战,那微服务都面临哪些挑战,面对这些挑战我们应该怎么来做,微服务需要关注哪些方面,微服务的最佳实践是什么, SOA和微服务有什么区别,这些问题都将在本章中得到答案。…
- 7-1 单体架构的优势和不足
- 7-2 微服务架构的优势
- 7-3 微服务架构的挑战
- 7-4 微服务最佳实践
-
第8章 微服务拆分、确定服务边界
本章结合房产销售平台项目阐述微服务拆分的原则,如何在处理服务拆分又能同时满足需求迭代,如何在服务拆分时又兼顾业务模型和团队结构,康威定律在架构设计中的应用。 同时对于如何做好架构设计,一个系统的架构是否优秀需要进行哪些衡量;微服务架构下,我们如何进行数据库拆分等问题,在本章中都能得到答案。…
- 8-1 微服务拆分的原则和方法
- 8-2 从建模到模块服务拆分
- 8-3 微服务数据库的拆分
- 8-4 微服务架构下如何保证数据一致性
-
第9章 SpringCloud技术栈选型及架构设计
本章会介绍SpringCloud基础知识,SpringCloud套件组件,微服务的架构场景,在目前SpringBoot工程中接入SpringCloud。然后进行微服务架构设计,搭建一个支持微服务架构的脚手架,包含服务注册和发现组件Spring Cloud Eureka,服务通信组件RestTemplate以及二次封装,同时支持直连和服务发现,负载均衡组件Spring Cloud R…
- 9-1 技术选型及Spring Cloud介绍
- 9-2 微服务技术架构设计
- 9-3 Spring Cloud Eureka服务注册和发现-1试看
- 9-4 Spring Cloud Eureka服务注册和发现-2
- 9-5 Spring Cloud Eureka服务注册和发现-3
- 9-6 RestTemplate + httpclient及http日志输出-1
- 9-7 RestTemplate + httpclient及http日志输出-2
- 9-8 RestTemplate + httpclient及http日志输出-3
- 9-9 RestTemplate + httpclient及http日志输出-4
- 9-10 Spring Cloud Ribbon负载均衡组件实战
- 9-11 微服务代码脚手架搭建-1
- 9-12 微服务代码脚手架搭建-2
- 9-13 使用Feign实现服务调用【拓展知识】
-
第10章 微服务实战-用户服务(SpringData Redis及JWT等技术)
本章我将学习到用户服务的接口设计,接入Spring Data Redis缓存实现用户查询接口,并基于JWT(Json Web Token)实现身份认证和鉴权; 在介绍SpringData Redis之前我会带领大家一起安装Redis,并通过时序图详细讲解从基于Session到Token再到JWT进行身份认证方案的演进过程,详细分析各个方案都有什么优缺点,最终借助JW…
- 10-1 用户服务接口设计
- 10-2 接入分布式缓存Spring Data Redis实现用户查询接口试看
- 10-3 新增用户、激活用户接口设计
- 10-4 基于JWT的Token认证实现登录、鉴权接口-1
- 10-5 基于JWT的Token认证实现登录、鉴权接口-2
- 10-6 经纪人、经纪机构接口设计
-
第11章 微服务网关服务API Gateway实战
本章将介绍微服务API Gateway模块的实现,首先我会介绍API Gateway的接口设计,并通过RestTemplate来调用我们的用户服务来完成用户注册、登录和登出,以及个人页的编写,以及和原生的RestTemplate比较,最后会带大家基于RestTemplate封装一个更加易用的RESTFul组件,包括状态码判断,异常处理,请求链接构建,响应结果反序列…
- 11-1 API Gateway—模块设计
- 11-2 用户注册实现
- 11-3 通过jwt token替换session实现用户登录与鉴权
- 11-4 二次封装RestTemplate实现个人页展示
- 11-5 获取经纪人详情页
-
第12章 微服务实战-房产服务
本章我将介绍房产服务以及通过API Gateway调用房产服务实现房产功能,同时介绍房产服务的接口设计,并通过Swagger暴露接口文档,以及Swagger的接入过程,最后介绍API Gateway调用房产服务完成房产详情、房产收藏的实现过程。
- 12-1 房产服务接口设计
- 12-2 新增房产接口, 收藏房产接口
- 12-3 房产查询接口设计
- 12-4 评分与留言接口设计
- 12-5 房产推荐接口设计
- 12-6 通过Swagger暴露接口文档
- 12-7 返回房产列表房产详情(API Gateway调用房产服务)
- 12-8 用户收藏房产实现(API Gateway调用收藏服务)
- 12-9 SpringBoot CORS跨域解决方案
-
第13章 微服务实战-评论博客服务
本章我将介绍评论博客服务的接口设计。首先在博客评分服务编写出接口实现,然后通过API Gateway调用评论服务,展示评论列表,并通过API Gateway调用博客服务,展示博客列表。
- 13-1 接口设计
- 13-2 评论列表接口设计
- 13-3 展示评论列表(API Gateway调用评论服务)
- 13-4 博客服务接口设计
- 13-5 博客列表及详情接口设计
- 13-6 展示博客列表(API Gateway调用博客服务)
-
第14章 Spring Cloud Hystrix实现服务容错
本章我们将学习微服务经常遇到的问题—-级联故障,并深入讲解级联故障发生的背景和原因,进而引出解决级联故障的解决方案—SpringCloud Hystrix断路器,并讲解Hystrix断路器相关概念(舱壁隔离、超时控制、服务降级、服务熔断),Hystrix断路器的工作流程,工程接入Hystrix的步骤,接入后我们会进行实际演示来验证Hystri…
- 14-1 Spring Cloud Hystrix断路器介绍
- 14-2 Spring Cloud Hystrix的接入-1
- 14-3 Spring Cloud Hystrix的接入-2
- 14-4 Spring Cloud Hystrix工作原理
-
第15章 全链路追踪、搭建ELK日志检索架构
本章我们将学习微服务的链路追踪和日志检索,首先介绍下全链路追踪的背景及 一些基本概念,引出并讲解解决方案Spring Cloud Sleuth,,之后日志配置文件如何修改输出TraceId、SpanId,并通过Zipkin Ui图形化查询链路调用情况,并讲解Spring Cloud Sleuth的工作原理, 对应日志检索,ELK架构所用的三种技术及数据流程,…
- 15-1 Spring Cloud Sleuth全链路追踪解决方案介绍
- 15-2 接入log4j2日志组件
- 15-3 接入Spring Cloud Sleuth及与Zipkin配合使用
- 15-4 Spring Cloud Sleuth的工作原理
- 15-5 ELK架构介绍及ES、Kibana的搭建-日志检索方案
- 15-6 Logstash配置的编写和调试
- 15-7 Kibana展示平台的使用
-
第16章 课程总结
课程知识点梳理&问答:https://www.imooc.com/article/23408,本章就到了课程的尾声了,微服务是致力于后端架构开发同学的必备技能,本章会通过脑图重新梳理单体和微服务架构知识图谱,让大家能够对前面学到的东西进行记忆强化,希望大家都能学以致用,学有所成,开启职业新篇章。…
- 16-1 课程总结