本章演示整体项目,讲解微服务架构图,技术架构图以及系统功能模块图和技术架构拓扑图,之后会为大家介绍本课程内容具体安排,最后给出如何学好这门课程的一些学习建议。希望大家都能通过这门课程,学有所成,学有所归。...1-1 课前必读1-2 课程介绍与学习指南 (09:07)1-3 项目介绍与演示【课前必知】 (06:07)1-4 项目微服务架构图【课前必知】 (05:47)1-5 项目技术架构图【课前必知】 (03:29)
第2章 架构后端项目本章我们先来一起探讨前后端分离的设计模式,启动运行前端项目(前端源码直接提供给大家),对于不同的域名会在本地通过host来模拟实现,之后会通过Maven构建聚合工程,搭建项目,配置日志以及多环境配置,优雅的封装返回结果集,配置整合MyBatis以及swagger2。...2-1 前后端分离设计模式探讨【项目构建】 (05:48)2-2 运行前端项目【项目构建】 (07:22)2-3 虚拟域名的绑定与使用 (11:12)2-4 数据库选型与数据导入 (08:11)2-5 构建顶级工程【聚合工程】-1 (19:28)2-6 构建模块工程【聚合工程】-2 (20:04)2-7 api接口暴露【聚合工程】 (10:15)2-8 配置logback日志与多环境profile【聚合工程】 (09:33)2-9 优雅的返回封装结果【构建项目】 (12:11)2-10 配置数据库逆向生成工具【构建项目】 (11:04)2-11 整合mybatis【构建项目】 (14:54)2-12 Swagger2接口文档工具的使用【构建项目】 (12:54)2-13 通过maven来构建多级嵌套的聚合工程
第3章 开发通行证服务本章核心开发用户登录注册业务,带大家使用短信实现一键注册登录。教会大家如何使用流程图梳理业务流程,如何配置阿里云的短信服务(包括拦截控制)。在前后端分离模式和分布式开发中,如何结合Redis实现用户分布式会话,在Redis缓存方面你也会收获到双写一致以及CAP理论。...3-1 梳理短信登录注册流程 (08:42)3-2 配置秘钥与资源文件【短信服务】 (11:37)3-3 整合并发送短信【短息服务】 (16:52)3-4 安装配置整合Redis-1 (14:06)3-5 安装配置整合Redis-2 (06:58)3-6 完善发送短信接口 (13:21)3-7 联调前端发送短信,解决跨域问题 (06:37)3-8 拦截并限制60秒用户短信发送 (11:48)3-9 自定义异常,返回错误信息 (14:07)3-10 验证BO信息【注册登录】 (18:37)3-11 查询老用户&新用户添加【注册登录】-1 (19:19)3-12 查询老用户&新用户添加【注册登录】-2 (11:49)3-13 设置会话与cookie信息【注册登录】 (21:58)3-14 资源属性与常量绑定 (04:44)3-15 查询用户账户信息 (14:45)3-16 信息校验【用户资料完善】 (05:57)3-17 postman测试接口【用户资料完善】 (04:54)3-18 激活用户信息入库【用户资料完善】 (07:15)3-19 查询并展示用户基本信息 (08:04)3-20 浏览器存储介质localStorage, cookie, sessionStorage (08:37)3-21 缓存用户信息 (14:41)3-22 双写数据不一致的情况 (03:02)3-23 缓存数据双写一致 (07:47)3-24 CAP理论与数据一致性抉择 (17:05)3-25 用户会话拦截器【拦截器】 (13:17)3-26 用户状态激活拦截器【拦截器】 (08:54)3-27 AOP警告日志监控与sql打印 (19:12)3-28 退出登录&注销会话 (05:32)3-29 如何设计一个使用邮箱验证的用户注册流程?3-30 如何实现多级缓存架构的实现?
第4章 开发文件服务本章将带你依次掌握实现文件上传主流的两种方式:fastdfs+nginx和阿里云OSS,通过两者的学习,通过本章学习你就可以在自己的项目中自如的接入文件上传业务。4-1 FastDFS架构原理与上传下载流程解析 (10:47)4-2 配置FastDFS环境准备工作【FastDFS】 (08:22)4-3 配置tracker服务【FastDFS】 (03:54)4-4 配置storage服务【FastDFS】 (11:43)4-5 安装Nginx提供web服务【FastDFS】 (12:12)4-6 整合Nginx实现文件服务器【FastDFS】 (14:10)4-7 创建文件服务module【文件上传】 (13:44)4-8 整合fdfs与service实现【文件上传】 (07:43)4-9 实现fastdfs图片存储【文件上传】 (16:07)4-10 完善用户头像上传【文件上传】 (11:50)4-11 图片大小控制的统一异常处理 (03:46)4-12 第三方云存储解决方案【阿里OSS】 (06:29)4-13 阿里OSS介绍 (12:28)4-14 控制台的基本配置使用【阿里OSS】 (06:02)4-15 SDK的使用与项目整合【阿里OSS】 (16:33)4-16 OSS整合实现文件上传【阿里OSS】 (06:08)4-17 图片自动审核【阿里内容安全】 (16:30)4-18 创建阿里云子账号【阿里内容安全】 (07:25)
第5章 开发admin管理服务本章核心带大家完成admin管理服务中的人脸/分类/友情链接等功能实现。先从maven构建子module开始,完成对admin表设计与预分配账号,对admin账户分片实现登录。揭秘人脸登录逻辑,使用gridfs解决人脸存储问题,分享阿里智能AI识别技术。最后完成友情链接与分类业务开发,教会大家mongodb核心操作。...5-1 构建admin服务 (07:14)5-2 表设计与账号预分配【admin账号】 (06:58)5-3 持久层查询管理员【admin账号】 (06:21)5-4 用户名密码登录【admin账号】 (14:22)5-5 校验admin账号唯一【admin账号】 (05:51)5-6 创建admin账号【admin账号】 (17:58)5-7 查看admin列表【admin账号】 (14:37)5-8 封装分页数据&调试分页接口【admin账号】 (08:23)5-9 账号注销【admin账号】 (05:45)5-10 人脸业务流程图梳理【admin账号】 (03:11)5-11 Chrome开启视频调试模式 (05:18)5-12 入门MongoDB (07:13)5-13 MongoDB安装与配置使用 (11:48)5-14 可视化管理工具【MongoDB】 (08:41)5-15 整合SpringBoot【GridFS】 (09:48)5-16 实现人脸入库【GridFS】 (07:09)5-17 查看admin人脸信息【GridFS】-1 (18:21)5-18 查看admin人脸信息【GridFS】-2 (08:51)5-19 阿里AI人脸识别介绍 (09:05)5-20 获得人脸faceId【人脸登录】 (06:57)5-21 查询人脸数据【人脸登录】 (04:49)5-22 整合RestTemplate服务通信【人脸登录】 (07:54)5-23 实现人脸对比进行登录【人脸登录】 (09:24)5-24 MongoDB使用场景 (06:07)5-25 友情链接保存与更新【MongoDB】 (20:51)5-26 Repository持久层操作保存记录【MongoDB】 (13:21)5-27 友情链接列表查询【MongoDB】 (06:35)5-28 友情链接删除【MongoDB】 (04:18)5-29 (作业)文章分类管理 (08:39)5-30 查询用户列表&设置时间日期转换配置【用户管理】 (13:00)5-31 查询用户列表&实现service与联调【用户管理】 (14:30)5-32 查询用户账号&冻结与解封【用户管理】 (13:01)5-33 在线人脸识别和自研库人脸识别,你更倾向于哪种方式的对接?
第6章 内容管理与AI自动审核本章既是用户中心的核心业务模块,也是网站内容的核心,会先带大家梳理文章表结构,构建文章服务工程,结合summernote富文本实现文章编撰,实现多文件上传。结合Redis提速分类读取,实现文章的发布(定时),完成AI自动和人工审核(审核不通过需打回)。...6-1 梳理文章article表结构【文章服务】 (07:00)6-2 构建文章服务工程【文章服务】 (07:30)6-3 summernote与多文件上传需求【发头条】 (09:23)6-4 实现多文件上传【发头条】 (10:27)6-5 获得列表&业务接口解耦与Redis缓存应用【文章领域】 (12:15)6-6 admin端维护数据缓存【文章领域】 (06:28)6-7 发布文章入库Controller及验证【发头条】 (17:09)6-8 发布文章入库Service及联调【发头条】 (12:27)6-9 预览文章【发头条】 (04:00)6-10 构建定时任务 (08:26)6-11 定时发布文章【定时任务】 (11:38)6-12 文章列表展示【内容管理】 (19:56)6-13 阿里AI文本检测【内容审核】 (09:42)6-14 实现阿里AI自动审核文章【内容审核】 (12:00)6-15 (作业)admin文章管理列表【内容审核】 (01:45)6-16 人工审核【内容审核】 (05:47)6-17 撤回&删除文章作业【内容管理】 (02:39)
第7章 开发首页与作家页本章核心完成首页和作家页面开发,包括文章列表的加载与展示,粉丝的关注与取关,重点Redis的单线程计数功能,粉丝画像数据可视化图片展示。7-1 首页&作者页面介绍【章节概述 】 (04:03)7-2 根据MongoDB字段查询友情链接【首页】 (07:30)7-3 搜索并展示文章列表【首页】 (14:47)7-4 文章列表展示发布者需求【首页】 (08:41)7-5 发起restTemplate请求查询用户服务获得发布者列表【首页】 (12:51)7-6 重组文章列表并且渲染【首页】 (07:18)7-7 查询热闻【首页】 (08:07)7-8 (作业)基本信息展示&历史文章列表【作者主页】 (05:36)7-9 关注与取关&redis单线程计数统计【粉丝关注】 (05:48)7-10 查询用户关注状态【粉丝关注】 (13:38)7-11 用户关注&粉丝累加【粉丝关注】 (11:12)7-12 取消关注&粉丝累减【粉丝关注】 (06:06)7-13 粉丝数与关注数页面显示【粉丝关注】 (06:45)7-14 我的粉丝列表&后端分页查询【粉丝管理】 (07:28)7-15 男女比例柱状图&饼状图显示【数据可视化-粉丝画像】 (13:05)7-16 中国地图粉丝地域分布数量展示【数据可视化-粉丝画像】 (13:08)
第8章 开发详情页与评论模块本章核心完成文章详情页以及评论模块开发,包括详情页动态加载展示,文章评论发布与回复功能,揭秘文章阅读数的防刷策略控制。8-1 开发文章详情接口【章节概述】 (15:08)8-2 阅读文章&阅读量redis累加【详情页】 (07:01)8-3 文章阅读数防刷策略【详情页】 (11:21)8-4 Redis mget 批量查询组装阅读数并展示【文章列表】 (13:01)8-5 用户发表评论【文章评论】 (12:43)8-6 用户评论入库保存【文章评论】 (13:15)8-7 评论数累计与显示【文章评论】 (05:33)8-8 文章评论sql关联查询【文章评论】 (05:39)8-9 显示评论列表【文章评论】 (13:54)8-10 (作业)管理评论列表以及删除评论【评论管理】 (03:51)8-11 增加评论者头像展示功能需求扩展【文章评论】 (11:06)8-12 课程小结 (08:07)
第9章 Freemarker 详情页数据静态化本章核心完成Freemarker的数据静态化,目的为了加载更快以及便于SEO搜索引擎的收录。本章会从Freemarker相关语法以及基本指令为起点,随后编写模板ftl来实现详情页的静态化。9-1 文章静态化技术与Freemarker【章节概述】 (08:16)9-2 创建并且显示模板ftl【Hello Freemarker】 (14:15)9-3 输出对象【freemarker语法】 (09:26)9-4 输出list与map【freemarker语法】 (08:38)9-5 指令if【freemarker语法】 (09:22)9-6 结合动态数据生成静态化HTML【freemarker】 (16:20)9-7 改写详情页为模板页ftl【页面静态化】 (13:47)9-8 文章详情ftl生成静态化页面【页面静态化】 (16:56)9-9 文章阅读量单独获取并展示【页面静态化】 (08:48)9-10 梳理生产端消费端与中间gridfs关系【静态化解耦】 (11:41)9-11 生产端存储html到gridfs并关联文章表【静态化解耦】 (15:01)9-12 消费端从gridfs下载HTML到tomcat【静态化解耦】 (15:09)9-13 (作业)撤回删除文章,删除gridfs文件以及html【静态化解耦】 (03:58)9-14 如何保证详情页静态化后的高并发性能?
第10章 RabbitMQ异步解耦与延迟队列本章核心带大家掌握消息队列RabbitMQ如何实现异步解耦以及延迟队列。针对接口同步调用,为什么需要结合mq来实现异步解耦,还会结合延迟插件来实现延迟消息的处理。10-1 接口解耦需求【章节概述】 (08:12)10-2 RabbitMQ概览&MQ模型 (10:34)10-3 RabbitMQ-3.8.5安装与配置-1 (14:11)10-4 RabbitMQ-3.8.5安装与配置-2 (15:35)10-5 引入依赖和配置【集成Rabbitmq】 (06:54)10-6 创建交换机和队列【集成Rabbitmq】 (13:26)10-7 创建生产者&配置路由规则【集成Rabbitmq】 (15:47)10-8 消费者接受消息处理业务【集成Rabbitmq】 (08:30)10-9 文章静态化HTML与删除【异步解耦】 (09:48)10-10 延迟队列的需求与安装配置【延迟队列】 (11:14)10-11 实现延迟队列【延迟队列】 (10:23)10-12 实现文章的定时延迟发布【延迟队列】 (15:46)
第11章 Spring Cloud 微服务-1本章开始进入微服务的实战,为了更好的统一管理微服务,本章会带大家使用eureka注册中心,ribbon负载均衡,feign声明式客户端以及hystrix熔断降级组件完成微服务开发。11-1 互联网架构演变 (16:46)11-2 SpringCloud 概述与版本选型 (06:59)11-3 使用 RestTemplate 进行服务调用的弊端 (06:27)11-4 注册中心模型【eureka】 (04:19)11-5 构建Eureka注册服务【eureka】-1 (07:34)11-6 构建Eureka注册服务【eureka】-2 (10:36)11-7 实现用户与文章的服务注册【eureka】 (09:55)11-8 使用AppName优化服务间的通信【eureka】 (07:29)11-9 动态构建eureka集群【eureka】 (17:37)11-10 微服务注册到eureka集群【eureka】 (03:28)11-11 构建微服务集群【eureka】 (03:58)11-12 实现轮训负载均衡【eureka】 (06:38)11-13 自我保护功能【eureka】 (10:39)11-14 概述与负载均衡【ribbon】 (05:49)11-15 实现多种负载均衡算法【ribbon】 (12:09)11-16 重试机制【ribbon】 (09:16)11-17 简化服务调用【feign】 (12:08)11-18 统一校验处理【feign】 (07:45)11-19 开启日志调试【feign】 (06:00)11-20 阐述断路器及概念【hystrix】 (07:39)11-21 模拟服务故障【hystrix】 (06:19)11-22 服务提供者熔断【hystrix】 (08:10)11-23 全局降级【hystrix】 (07:07)11-24 服务调用者降级【hystrix】 (11:02)11-25 自动触发熔断隔离与恢复【hystrix】 (16:43)
第12章 Spring Cloud 微服务-2本章继续微服务实战,带大家针对微服务统一的请求进行管理,使用zuul作为微服务网关,结合config与bus作为动态配置中心,最后还会使用stream消息组件以及sleuth链路追踪组件优化服务。12-1 微服务网关【zuul】 (04:24)12-2 搭建网关微服务【zuul】 (10:25)12-3 配置路由【zuul】 (09:33)12-4 配置微服务实例的路由【zuul】 (07:26)12-5 过滤器【zuul】 (06:54)12-6 限制ip黑名单的频繁请求【zuul】 (27:47)12-7 分布式配置中心【config】 (05:43)12-8 搭建配置中心【config】 (08:03)12-9 配置中心实现git配置读取【config】 (07:23)12-10 配置客户端拉取配置【config】 (12:33)12-11 动态刷新git配置【config】 (07:39)12-12 消息总线概述【bus】 (05:03)12-13 配置实现消息统一发送【bus】 (14:07)12-14 消息驱动概述【stream】 (07:44)12-15 实现生产者与消费者【stream】 (25:05)12-16 消息分组与持久化【stream】 (15:46)12-17 链路追踪概述与zipkin【sleuth】 (06:41)12-18 整合zipkin【sleuth】 (10:47)12-19 SpringCloud总结 (03:43)
第13章 课程全面总结本章将带大家回顾总结课程重点难点,在课程问答区老师等着与你进一步交流,有问题欢迎大家到课程问答区提问。13-1 课程总结 (08:30)
第14章 【升级章节】什么是分布式搜索引擎本章主要讲解搜索引擎的概念、分布式存储与搜索、es整合springboot等,全面系统的学习es。14-1 升级更新概述与分布式搜索引擎 (09:55)14-2 Elasticsearch 的基本概念 (06:18)14-3 搜索引擎的倒排索引 (07:03)14-4 elasticsearch - 下载与版本说明 (06:49)14-5 elasticsearch - 安装es (15:33)14-6 elasticsearch - 安装 ES-Head (06:42)14-7 elasticsearch - 分词与内置分词器 (13:58)14-8 elasticsearch - 使用IK中文分词器 (07:40)14-9 es整合 - 整合springboot,索引创建与删除 (08:08)14-10 es整合 - 为索引创建mappings并新增文档 (10:31)14-11 es整合 - 文档数据的修改、查询与删除 (09:40)
第15章 【升级章节】es项目实战本章用es实战梳理文章索引field并创建、发布文章新增文档数据、粉丝管理及redis拓展,在实战中掌握分布式搜索引擎。15-1 es实践 - 梳理文章索引field并创建 (05:36)15-2 es实践 - 发布文章新增文档数据 (11:26)15-3 es实践 - 删除撤下文章,删除文档数据 (05:26)15-4 es实践 - 首页基于文章的3种搜索脚本 (07:52)15-5 es实践 - 整合实现match_all搜索 (10:47)15-6 es实践 - es实践 - 整合实现term与match搜索 (04:20)15-7 粉丝管理 - 在es中构建粉丝索引 (05:00)15-8 es实践 - 关键字高亮展示 (18:01)15-9 粉丝管理 - 关注与取关,保存关系到es中 (11:43)15-10 es实践 - 整合es搜索到前端 (10:50)15-11 粉丝列表 - es查询与展示粉丝列表 (07:56)15-12 粉丝列表 - 粉丝信息被动更新 (14:10)15-13 粉丝画像 - es聚合统计脚本 (15:36)15-14 粉丝画像 - es数据可视化男女统计 (16:07)15-15 粉丝画像 - es数据可视化地域统计 (06:24)15-16 redis拓展 - 基于zset的数据类型 (12:21)15-17 redis拓展作业 - 首页热闻实现思路 (03:37)15-18 redis拓展作业 - 首页热闻实现思路 (03:37)
第16章 【升级章节】注册中心Zookeeper&Consul由于Eureka目前停更,我们会采用其他的解决方案,本章节会结合使用zookeeper和consul来实现替换eureka的方案.16-1 SpringCloudAlibaba 升级说明 (05:58)16-2 安装Zookeeper (07:59)16-3 把服务注册到Zookeeper (09:14)16-4 微服务zk节点是临时还是持久的? (04:50)16-5 通过zk实现微服务调用 (08:24)16-6 Consul 概述介绍与安装 (08:02)16-7 向Consul注册微服务 (06:41)16-8 通过consul进行微服务调用 (03:22)16-9 Eureka vs Zookeeper VS Consul (04:44)
第17章 【升级章节】新一代微服务网关Gateway本章节会使用Gateway来替换zuul,讲述其动态路由、断言与过滤器等。17-1 新一代微服务网关 GateWay与网关架构 (08:40)17-2 Gateway三大特性和工作原理 (06:54)17-3 构建gateway工程进行服务调用 (11:50)17-4 Gateway的两种路由方式与动态路由配置 (06:41)17-5 Predicates断言匹配规则 (07:17)17-6 Filters 自定义全局过滤器 (10:09)
第18章 【升级章节】SpringCloud Alibaba Nacos本章节正式进入SpringCloud Alibaba环节,首当其中我们会学习Nacos服务注册中心。18-1 SpringCloud Alibaba (07:01)18-2 Nacos 简介 (05:18)18-3 安装Nacos (03:12)18-4 Nacos 服务集群注册 (08:45)18-5 Nacos 实现服务轮训调用 (05:05)18-6 实现Nacos 权重负载均衡 (03:51)
第19章 【升级章节】Nacos配置中心Nacos不仅可以作为注册中心,也可以用于配置中心,要远比SpringCloudConfig强大很多。19-1 Nacos 实现动态配置管理 (12:56)19-2 Nacos+Maven 动态环境配置 (05:30)19-3 Nacos 分组Group配置 (03:02)19-4 Nacos 命名空间配置 (05:48)
第20章 【升级章节】Nacos集群Nacos的强大,我们也必须保证其高可用,本章节带着大家搭建Nacos集群,以及数据库持久化配置。20-1 Nacos集群 - IP漂移技术 (06:54)20-2 Nacos集群 - MySql持久化配置 (13:06)20-3 Nacos 构建集群 (13:50)
第21章 【升级章节】Sentinel 限流Sentinel作为微服务的流量防卫兵,本章节会带着大家学习如何处理限流。21-1 Sentinel 的出现 (06:56)21-2 安装Sentinel 控制台 (04:00)21-3 构建Sentinel 的监控服务 (11:19)21-4 Sentinel 流量控制规则 (04:27)21-5 Sentinel QPS限流直接失败 (02:17)21-6 Sentinel 并发线程数Jemter压测限流 (08:59)21-7 Sentinel 资源关联限流 (03:23)21-8 Sentinel 链路限流(不做要求) (15:11)21-9 Sentinel限流效果之预热 (07:29)21-10 Sentinel限流效果之排队等待 (04:52)
第22章 【升级章节】Sentinel 熔断Sentinel非常强大,本章节会一起接触并且学习如何进行熔断。22-1 Sentinel 熔断降级概念梳理 (06:47)22-2 Sentinel熔断 - 慢调用比例 (08:10)22-3 Sentinel熔断 - 异常比例 (04:43)22-4 Sentinel熔断 - 异常数 (03:00)
第23章 【升级章节】Sentinel 热点key与降级本章节通过Sentinel来实现热点key的限流,以及自定义防卫资源和熔断降级处理。23-1 Sentinel 热点参数限流概述 (05:43)23-2 Sentinel 实现热点参数限流 (07:06)23-3 @SentinelResource 自定义降级方法 (05:24)23-4 Sentinel 热点例外参数 (03:03)23-5 @SentinelResource 解耦降级方法 (10:00)23-6 Sentinel 系统规则的使用 (04:16)23-7 Sentinel 异常熔断fallback (06:01)23-8 Sentinel 异常熔断defaultFallback (03:25)23-9 Sentinel 异常熔断fallbackClass (03:39)
第24章 【升级章节】OpenFeign 接口调用本章节会使用OpenFeign实现微服务之间的调用,并且实现客户端降级。24-1 OpenFeign 接口式调用 (06:52)24-2 OpenFeign结合Sentinel 客户端降级 (08:48)
第25章 【升级章节】分布式事务Seata微服务与分布式系统中最需要处理的就是事务问题,在此可以通过seata来实现分布式事务的解决方案。25-1 分布式事务概述与环境准备 (07:47)25-2 Seata 概述与模型 (09:29)25-3 安装Seata服务 (13:20)25-4 Seata 业务系统实现分布式事务 (15:40)
第26章 升级总结针对本次升级内容做一个简述总结。26-1 课程升级总结 (05:04)