微服务技术栈(SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式)

目录

微服务技术栈导学

day01

1、认识微服务

(1)服务架构演变

(2)SpringCloud

2、服务拆分及远程调用

(1)服务拆分

(2)服务间调用

3、eureka注册中心

(1)提供者与消费者

(2)远程调用的问题

(3)eureka原理分析

(4)搭建eureka服务

(5)服务注册

(6)服务发现

4、Ribbon负载均衡原理

(1)负载均衡原理

(2)负载均衡策略

(3)饥饿加载

5、Nacos注册中心

(1)认识Nacos

(2)Nacos快速入门

(3)Nacos服务分级存储模型

(4)NacosRule负载均衡

(5)服务实例的权重设置

(6)Nacos环境隔离

(7)Nacos和Eureka的对比

day02

1、Nacos配置管理

(1)统一配置管理

(2)配置热更新

(3)配置共享

(4)搭建Nacos集群

2、Feign远程调用

(1)Feign替代RestTemplate

(2)自定义配置

(3)Feign使用优化

(4)最佳实践

3、Gateway服务网关

(1)为什么需要网关

(2)gateway入门

(3)断言工厂

(4)过滤器工厂

(5)全局过滤器

(6)过滤器执行顺序

(7)跨域问题

day03 Docker

1、初识Docker

(1)什么是Docker

(2)Docker和虚拟机的区别

(3)Docker架构

(4)安装Docker

2、Docker的基本操作

(1)镜像操作

(2)容器操作

(3)数据卷(容器数据管理)

3、Dockerfile自定义镜像

(1)镜像结构

(2)Dockerfile语法

4、Docker-Compose

(1)初识DockerCompose

(2)部署微服务集群

5、Docker镜像仓库

day04 RabbitMQ服务异步通讯

1、初识MQ

(1)同步通讯

(2)异步通讯

(3)MQ常见框架

2、RabbiMQ

(1)RabbitMQ概述

(2)常见消息模型

(3)快速入门

3、SpringAMQP

(1)Basic Queue简单队列模型

(2)Work Queue工作队列模型

(3)发布、订阅模型-Fanout

(4)发布、订阅模型-Direct

(5)发布、订阅模型-Topic

(6)消息转换器

day05 分布式搜索

1、初识elasticsearch

(1)了解ES

(2)倒排索引

(3)es的一些概念

(4)分词器

2、索引库操作

(1)mapping映射属性

(2)索引库的CRUD

3、文档操作

(1)新增文档

(2)查询、删除文档

(3)修改文档

4、RestClient操作索引库

(1)创建索引库

(2)删除索引库

(3)判断索引库是否存在

5、RestClient操作文档

(1)新增文档

(2)查询文档

(3)修改文档

(4)删除文档

(5)批量导入文档

day06 elasticsearch搜索功能

1、DSL查询文档

(1)DSL查询分类

(2)全文检索查询

(3)精准查询

(4)地理坐标查询

(5)组合查询(Function Score Query、Boolean Query)

2、搜索结果处理

(1)排序

(2)分页

(3)高亮

3、RestClient查询文档

(1)快速入门

(2)match查询

(3)精确查询

(4)复合查询

(5)排序、分页、高亮

4、旅游案例

(1)酒店搜索和分页

(2)酒店结果过滤

(3)我周边的酒店

(4)酒店竞价排名

day07 深入elasticsearch

1、数据聚合

(1)聚合的种类

(2)DSL实现聚合

(3)RestAPI实现聚合

2、自动补全

(1)拼音分词器

(2)自定义分词器

(3)自动补全查询

(4)实现酒店搜索框自动补全

3、数据同步

(1)数据同步思路分析

(2)实现elasticsearch与数据库数据同步

4、集群

(1)搭建ES集群

(2)集群职责及脑裂问题

(3)集群故障转移

(4)集群分布式存储

(5)集群分布式查询

day08 微服务保护Sentinel

1、初识Sentinel

(1)雪崩问题及解决方案

(2)服务保护技术对比

(3)Sentinel介绍和安装

(4)微服务整合Sentinel

2、流量控制

(1)快速入门

(2)流控模式

(3)流控效果

(4)热点参数限流

3、隔离和降级

(1)FeignClient整合Sentinel

(2)线程隔离(舱壁模式)

(3)熔断降级

4、授权规则

(1)授权规则

(2)自定义异常结果

5、规则持久化

(1)规则管理模式

(2)实现push模式

day09 分布式事务seata

1、分布式事务理论基础

(1)CAP定理

(2)BASE理论

2、初识Seata

(1)Seata的架构

(2)部署TC服务

(3)微服务集成Seata

3、实践

(1)XA模式

(2)AT模式

(3)TCC模式

(4)SAGA模式

4、高可用

day10 分布式缓存Redis集群

1、Redis持久化

(1)RDB持久化

(2)AOF持久化

2、Redis主从

(1)主从架构

(2)主从数据同步原理

3、Redis哨兵

(1)哨兵的作用和原理

(2)RedisTemplate的哨兵模式

4、Redis分片集群

(1)散列插槽

(2)集群伸缩

(3)故障转移

(4)RedisTemplate访问分片集群

day11 多级缓存(亿级流量)

1、多级缓存意义

2、JVM进程缓存

(1)初识Caffeine

(2)实现进程缓存

3、Lua语法入门

(1)初识Lua

(2)变量和循环

(3)条件控制、函数

4、多级缓存

(1)OpenResty快速入门

(2)请求参数处理

(3)查询Tomcat

(4)Redis缓存预热

(5)查询Redis缓存

(6)Nginx本地缓存

5、缓存同步策略

(1)数据同步策略

(2)Canal

(3)监听Canal

day12 服务异步通讯rabbitmq的高级特性

1、消息可靠性

(1)生产者消息确认

(2)消息持久化

(3)消费者消息确认

(4)消费失败重试机制

2、死信交换机

(1)初识死信交换机

(2)TTL

(3)延迟队列

3、惰性队列

(1)消息堆积问题

(2)惰性队列

4、MQ集群

(1)集群分类

(2)普通集群

(3)镜像集群

(4)仲裁队列

day13 热点面试题及源码分析

1、SpringCloud常见组件有哪些?

2、Nacos的服务注册表结构是怎样的?

3、Nacos如何支撑数十万服务注册压力?

4、Nacos如何避免并发读写冲突问题?

5、Nacos与Eureka的区别有哪些?

6、Sentinel的限流与Gateway的限流有什么差别?

7、Sentinel的线程隔离与Hystix的线程隔离有什么差别?


微服务技术栈导学


day01

1、认识微服务

(1)服务架构演变

(2)SpringCloud


2、服务拆分及远程调用

(1)服务拆分

(2)服务间调用


3、eureka注册中心

(1)提供者与消费者

一个服务既可以是提供者也可以是消费者

(2)远程调用的问题

(3)eureka原理分析

(4)搭建eureka服务

(5)服务注册

(6)服务发现


4、Ribbon负载均衡原理

(1)负载均衡原理

(2)负载均衡策略

(3)饥饿加载


5、Nacos注册中心

(1)认识Nacos

(2)Nacos快速入门

(3)Nacos服务分级存储模型

(4)NacosRule负载均衡

(5)服务实例的权重设置

(6)Nacos环境隔离

(7)Nacos和Eureka的对比


day02

1、Nacos配置管理

(1)统一配置管理

(2)配置热更新

(3)配置共享

(4)搭建Nacos集群


2、Feign远程调用

(1)Feign替代RestTemplate

(2)自定义配置

(3)Feign使用优化

(4)最佳实践


3、Gateway服务网关

(1)为什么需要网关

(2)gateway入门

(3)断言工厂

(4)过滤器工厂

(5)全局过滤器

(6)过滤器执行顺序

(7)跨域问题


day03 Docker

1、初识Docker

(1)什么是Docker

(2)Docker和虚拟机的区别

(3)Docker架构

(4)安装Docker


2、Docker的基本操作

(1)镜像操作

(2)容器操作

(3)数据卷(容器数据管理)


3、Dockerfile自定义镜像

(1)镜像结构

(2)Dockerfile语法


4、Docker-Compose

(1)初识DockerCompose

(2)部署微服务集群


5、Docker镜像仓库


day04 RabbitMQ服务异步通讯

1、初识MQ

(1)同步通讯

(2)异步通讯

(3)MQ常见框架


2、RabbiMQ

(1)RabbitMQ概述

(2)常见消息模型

(3)快速入门


3、SpringAMQP

(1)Basic Queue简单队列模型

(2)Work Queue工作队列模型

(3)发布、订阅模型-Fanout

(4)发布、订阅模型-Direct

(5)发布、订阅模型-Topic

(6)消息转换器


day05 分布式搜索

1、初识elasticsearch

(1)了解ES

(2)倒排索引

(3)es的一些概念

(4)分词器


2、索引库操作

(1)mapping映射属性

(2)索引库的CRUD


3、文档操作

(1)新增文档

(2)查询、删除文档

(3)修改文档


4、RestClient操作索引库

(1)创建索引库

(2)删除索引库

(3)判断索引库是否存在


5、RestClient操作文档

(1)新增文档

(2)查询文档

(3)修改文档

(4)删除文档

(5)批量导入文档



day06 elasticsearch搜索功能

1、DSL查询文档

(1)DSL查询分类

(2)全文检索查询

(3)精准查询

(4)地理坐标查询

(5)组合查询(Function Score Query、Boolean Query)


2、搜索结果处理

(1)排序

(2)分页

(3)高亮


3、RestClient查询文档

(1)快速入门

(2)match查询

(3)精确查询

(4)复合查询

(5)排序、分页、高亮


4、旅游案例

(1)酒店搜索和分页

(2)酒店结果过滤

(3)我周边的酒店

(4)酒店竞价排名


day07 深入elasticsearch

1、数据聚合

(1)聚合的种类

(2)DSL实现聚合

(3)RestAPI实现聚合


2、自动补全

(1)拼音分词器

(2)自定义分词器

(3)自动补全查询

(4)实现酒店搜索框自动补全


3、数据同步

(1)数据同步思路分析

(2)实现elasticsearch与数据库数据同步


4、集群

(1)搭建ES集群

(2)集群职责及脑裂问题

(3)集群故障转移

(4)集群分布式存储

(5)集群分布式查询




day08 微服务保护Sentinel

1、初识Sentinel

(1)雪崩问题及解决方案

(2)服务保护技术对比

(3)Sentinel介绍和安装

需要jdk1.8,并且端口不能冲突

(4)微服务整合Sentinel


2、流量控制

(1)快速入门

(2)流控模式

(3)流控效果

(4)热点参数限流


3、隔离和降级

(1)FeignClient整合Sentinel

(2)线程隔离(舱壁模式)

(3)熔断降级


4、授权规则

(1)授权规则

(2)自定义异常结果


5、规则持久化

(1)规则管理模式

(2)实现push模式


day09 分布式事务seata


1、分布式事务理论基础

(1)CAP定理

(2)BASE理论


2、初识Seata

(1)Seata的架构

(2)部署TC服务

需要下载Seata并配置

(3)微服务集成Seata


3、实践

(1)XA模式

(2)AT模式

(3)TCC模式

(4)SAGA模式


4、高可用


day10 分布式缓存Redis集群


1、Redis持久化

(1)RDB持久化

(2)AOF持久化


2、Redis主从

(1)主从架构

(2)主从数据同步原理


3、Redis哨兵

(1)哨兵的作用和原理

(2)RedisTemplate的哨兵模式


4、Redis分片集群

(1)散列插槽

(2)集群伸缩

(3)故障转移

(4)RedisTemplate访问分片集群


day11 多级缓存(亿级流量)

1、多级缓存意义


2、JVM进程缓存

(1)初识Caffeine

(2)实现进程缓存


3、Lua语法入门

(1)初识Lua

(2)变量和循环

(3)条件控制、函数


4、多级缓存

(1)OpenResty快速入门

(2)请求参数处理

(3)查询Tomcat

(4)Redis缓存预热

(5)查询Redis缓存

(6)Nginx本地缓存


5、缓存同步策略

(1)数据同步策略

(2)Canal

(3)监听Canal


day12 服务异步通讯rabbitmq的高级特性

1、消息可靠性

(1)生产者消息确认

(2)消息持久化

(3)消费者消息确认

(4)消费失败重试机制


2、死信交换机

(1)初识死信交换机

(2)TTL

(3)延迟队列


3、惰性队列

(1)消息堆积问题

(2)惰性队列


4、MQ集群

(1)集群分类

(2)普通集群

(3)镜像集群

(4)仲裁队列


day13 热点面试题及源码分析

1、SpringCloud常见组件有哪些?


2、Nacos的服务注册表结构是怎样的?


3、Nacos如何支撑数十万服务注册压力?


4、Nacos如何避免并发读写冲突问题?


5、Nacos与Eureka的区别有哪些?


6、Sentinel的限流与Gateway的限流有什么差别?


7、Sentinel的线程隔离与Hystix的线程隔离有什么差别?

天猫商城是一个基于SSM框架的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确认收货,评价等一系列操作。 作为模拟天猫商城系统的核心组成部分之一,采用SSM框架的天猫数据管理后台包含商品管理,订单管理,类别管理,用户管理和交易额统计等模块,实现了对整个商城的一站式管理和维护。本课程是一门专业的Java微服架构开发实战课程,主要讲解了当下流行的SpringBoot框架、SpringCloud架构以及与第三方技术整合开发实战内容。通过本课程的学习,能够理解并掌握SpringBoot的基础知识,同时能够掌握SpringBoot与常用的第三方技术整合实现实际开发中的业务需求,包括实现Web开发、数据访问、缓存管理、安全管理、消息服务、任务管理等;了解并掌握SpringCloud微服务架构的基础知识及相关组件的应用,掌握微服务架构在企业级开发的实践,建立起微服架构思想。项目技术栈:采用SpringBoot简化商城系统的初始搭建以及开发过程采用SpringMVC+Spring+IBatis完成项目的整合采用Mysql作为数据库存储,Druid配置数据库连接池采用SpringCloud+Netflix 微服务技术栈的实战开发使用Redis完成缓存的数据存储,搭建Redis搭建主从、哨兵、集群应用,保证Redis的高可用使用ElasticSearch全文检索系统进行商品数据搜索,使用ElasticSearch搭建搜索服务的高可用使用Ngnix实现页面动静分离与负载均衡的配置采用FastDFS文件储存系统文件存储,完成广告图片、商品图片的上传和存储系统使用采用CAS+shiro单点登录系统实现用户认证使用ECharts根据后台查询数据生成图表使用POI实现了商城盈利状况的Excel表格导出。商品的详情页使用Thymeleaf完成页面静态化,减少页面数据展示延迟项目中使用SpringBoot下的Aop + 自定义注解完成用户行为记录,日志采集后台管理系统使用Shiro实现登录验证和权限管理(超级管理员、管理员、产品编辑员)项目整合微信完成订单的支付使用Redission完成分布式锁,生成订单的编号使用SpringCloud Alibaba Seat完成下订单模块的分布式事务(新增订单表,库存减少,库存超卖设计)使用RabbitMQ 做消息队列,完成订单未支付自动取消和模块直接的解耦合使用Quartz任务调度,完成缓存的定时刷新,保证缓存的一致性使用本地消息表机制完成消息然队列RabbitMQ消息可靠性传输订单支付模块使用微信扫码支付,并设置订单超时自动取消通过Jquery实现前端校验,通过基于Hibernate的Valida注解实现后端的校验功能使用Base64编码对Json数据传输进行编码和解码项目使用RESTful设计风格实现资源的访问,实现前后端分离项目使用聚合数据第三方短信平台完成用户的登陆功能项目使用SpringBoot整合JavaMail完成邮件的发送项目使用SpringBoot整合Swagger2生成接口文档使用PostMan完成接口的测试项目的测试:SpringTest、dbunit、EasyMock使用Docker 进行应用的自动化打包和发布、自动化测试和持续集成、部署和调整其他应用使用 PowerDesigner,完成数据库的建模项目使用禅道进行BUG管理环境采用Maven实施多模块项目构建,采用Git进行项目版本管理 架构解读:  项目部分截图:              讲义部分截图:          
要构建一个基于上述技术栈的应用程序,涉及多个组件和技术,下面是一些关键点的简介: 1. **Spring Boot**: 是一个快速开发框架,简化了Java应用的配置和启动过程。 - 示例:用于创建简单的RESTful API服务[^4]。 2. **Spring Cloud**: 提供了一组工具和服务来扩展微服务架构。 - 功能包括服务发现、配置中心、API网关等[^5]。 3. **RabbitMQ**: 消息队列服务,支持异步通信和解耦。 - 在Spring Cloud中集成,可以用来实现消息驱动架构[^6]。 4. **Redis**: 缓存数据库,提高应用程序性能。 - 可以缓存热点数据或会话信息[^7]。 5. **Elasticsearch**: 分布式搜索和分析引擎,常用于全文检索。 - 支持复杂查询和实时数据分析[^8]。 6. **Xxl-sso**: 企业级权限管理系统,用于身份验证和授权[^9]。 7. **LCN**: 可能指的是Linux容器网络,Docker的基础组件。 - 管理容器间的网络连接[^10]。 8. **Nginx**: 反向代理服务器,优化HTTP请求和负载均衡。 - 与Spring Boot结合时,可能作为API Gateway[^11]。 9. **七牛云**: 对象存储服务,用于文件上传和管理。 - 存储静态资源[^12]。 10. **Swagger2**: 开源API文档生成工具。 - 用于自动生成API文档[^13]。 11. **MySQL**: 关系型数据库,存储业务数据。 - 数据持久化[^14]。 12. **Maven**: 项目管理和依赖管理工具。 - 用于构建和打包项目[^15]。 13. **GitLab**: 代码版本控制系统,用于版本控制和协作开发。 - 版本控制和CI/CD[^16]。 14. **Docker**: 虚拟化平台,便于部署和运行应用。 - 快速构建可移植的环境[^10]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值