2105-微服务课上历史问题总结

课上相关问题总结

Day01

服务分析

在这里插入图片描述

项目结构分析

在这里插入图片描述

pom.xml 文件删除线

在这里插入图片描述

MySQL的版本问题

当我们在执行一些SQL脚本时(例如 nacos-mysql.sql文件),假如出现如下错误,请升级你的mysql(建议mysql5.7以上或MariaDB 10.5.11)
在这里插入图片描述

Nacos服务启动问题

问题1:没有配置JAVA_HOME环境变量,或者JDK有问题
在这里插入图片描述

问题2:nacos链接mysql时,链接配置问题
在这里插入图片描述
问题3:启动命令用错位置

在这里插入图片描述

idea 中启动nacos

第一步:添加或编辑配置,例如:
在这里插入图片描述
第二步:新建 shell Script脚本,例如:
在这里插入图片描述
第三步:输入nacos信息,例如
在这里插入图片描述

第四步:启动nacos,例如:
在这里插入图片描述

Maven 依赖问题

假如出现依赖下载不下来,或者pom.xml文件出错,一定要检查:
第一:依赖添加的是否正确(groupId,artifactId,version)
第二:检查元素嵌套关系(dependencies,dependency)
第三:检查父工程依赖是否有问题,单词是否正确
第四:检查maven环境配置(最好一个项目一个本地库,假如多个项目共用一个,要确保多各项目使用的依赖版本是一致的。)

Day02

项目克隆问题

克隆下的项目导入以后是如下问题:

在这里插入图片描述
这个问题,可以右键项目的pom.xml文件,然后执行如下操作,将项目添加到maven区,例如:
在这里插入图片描述

JDK 配置问题

打开项目代码,是如下问题,例如
在这里插入图片描述
如上问题,可以打开项目结构,然后配置JDK,例如
在这里插入图片描述

Maven配置编译问题

我们使用的maven一般默认编译版本会采用JDK1.5,假如你希望为JDK8,可以在当前工程或父工程中添加如下,代码:

 <build>
        <plugins>
            <!--修改maven编译版本-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

我们也可以在每个工程的properties元素中设置指定当前工程的编译版本,例如:

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
</properties>

服务注册异常(NacosException)

启动服务时,出现如下问题,例如:

在这里插入图片描述

在这里插入图片描述

服务配置读取问题

在这里插入图片描述

配置文件格式问题

在这里插入图片描述

无法访问此网站

在这里插入图片描述

pom.xml有删除横线

在这里插入图片描述

访问404异常

在这里插入图片描述

访问500异常

在这里插入图片描述
例如,打开后台,假如出现了如下问题,就是你远程调用的服务url应该是写错了

在这里插入图片描述
例如:假如你的Consumer服务调用Provider服务,但是Provider服务没有启动就会出现如下问题:
在这里插入图片描述

端口占用问题

在这里插入图片描述

服务调用案例分析

在这里插入图片描述

服务ID问题分析

项目配置文件中的spring.application.name属性值为服务id,服务注册到nacos以后的服务名就是这个id,后续可以基于这个服务id找到具体的服务实例,然后进行调用.
在这里插入图片描述

Day03

Application Failed to Start

在这里插入图片描述

Maven Helper插件应用

在这里插入图片描述
在这里插入图片描述

客户端调用异常(ClientException)

在这里插入图片描述

@PathVariable 注解在@FeignClient中应用

在这里插入图片描述

依赖注入失败(Bean Not Found)

在这里插入图片描述

请求映射路径重复定义

在这里插入图片描述

@FeignClient注解名字问题

在这里插入图片描述

Feign远程调用超时

在这里插入图片描述

图解服务调用方案

在这里插入图片描述
这张图描述了远程服务调用的几中方式:
第一种:服务比较少,例如就两个服务,一个服务消费,一个服务提供,就不需要注册中心,不需要负载均衡.
第二种:并发比较大,服务服务比较多,我们需要管理服务,就需要注册中心,我们还需要服务间的负载均衡.但代码编写的复杂多相对高一些,我们需要自己获取ip,获取端口,拼接字符串等.
第三种:我们要基于第二种进行代码简化,底层提供了一种拦截器,把基于服务名获取服务实例的过程在拦截器中做了封装,简化了代码的开发.但是加了拦截器多少会在性能少有一点损耗.
第四种方式主要是从代码结构上做一个挑战,我们前面三种基于RestTemplate进行服务调用,本身属于一种远程服务调用业务,能够将这种业务写到一个业务对象中,Feign方式就诞生了,它主要对代码结构的一种优化.

Day04

配置文件加载顺序

在这里插入图片描述

拉取(Pull)配置信息

在这里插入图片描述

Nacos配置中心模型

在这里插入图片描述

在这里插入图片描述

Tomcat 请求处理分析

在这里插入图片描述

Java线程池构成分析

在这里插入图片描述

线程池任务执行过程

在这里插入图片描述

线程拒绝执行异常

在这里插入图片描述

Day05

JDK 版本问题

在这里插入图片描述

Sentinel 控制台显示

在这里插入图片描述

微服务中的Sentinel日志

在这里插入图片描述

回顾Spring MVC 请求处理

Spring MVC 是spring框架中基于MVC设计思想实现的一个WEB模块,这个模块下的请求响应处理流程如下:
在这里插入图片描述
其中:
第一:客户端向web服务(例如tomcat)发起请求。
第二:tomcat会调用Filter对请求进行预处理(例如请求编码处理,请求认证分析等)。
第三:请求经过滤器Filter处理过后会交给DispatcherServlet对象(负责资源调度,前端控制器),此对象基于url找到对应的请求处理链对象(HandlerExecutionChain)。
第四:DispatcherServlet获取了请求执行链之后,会首先调用请求执行链中拦截器(HandlerInterceptor)对象(这个对象会在@RestController之前执行).
第五:拦截器对象获取请求以后可以对请求先进行分析,例如记录请求次数,请求时间,然后控制对后端Controller的调用。
第六:拦截器允许请求去传递到Controller时,Controller对象会对请求进行处理,然后将处理结果还会交给MVC 拦截器。
第七:拦截器拿到响应结果以后对其进行分析处理(例如记录Controller方法执行结束的时间)
第八:拦截器将响应结果传递到DispatcherServlet对象。
第九:DispatcherServlet拿到响应结果以后,会基于响应数据的类型,调用相关处理器(Processer)进行处理。
第十:响应结果处理器对象对响应数据处理以后,会将其结果交给DispatcherServlet对象。
第十一:DispatcherServlet对象拿到响应数据的处理结果时,会将结果基于ServletResponse对象响应到客户端。

Sentinel 请求拦截分析

Sentinel对请求进行限流的原理分析,如图所示:
在这里插入图片描述
当我们在服务中添加了Sentinel依赖以后,Sentinel会为我们的服务提供一个SpringMVC拦截器,这个拦截器会对请求进行拦截,然后基于请求url获取sentinel控制台中设置好的流控规则,然后采用一定的算法对请求url要访问的资源进行流量限制。

Day06

Idea中启动Nacos

第一步:打开服务编辑配置,例如:
在这里插入图片描述
第二步:添加Shell Script,例如:

在这里插入图片描述
第三步:添加nacos相关信息,例如:
在这里插入图片描述

跨域访问问题

在这里插入图片描述
在这里插入图片描述

Nacos 服务注册问题

在这里插入图片描述

文件上传404问题

在这里插入图片描述

请求资源405异常

在这里插入图片描述

请求资源500异常

在这里插入图片描述

BeanCreationException 异常

在这里插入图片描述

服务名无效或没有定义

在这里插入图片描述

Day07

网关配置文件问题

在这里插入图片描述

服务访问被拒绝(Connection refused)

在这里插入图片描述

网关负载均衡调用流程分析

在这里插入图片描述

503访问异常

在这里插入图片描述

Postman请求携带请求头

在这里插入图片描述

作业(homework)

第一:安装postman或者在idea中配置rest client应用
第二:尝试在文件上传服务上创建网关项目,客户端请求直接请求网关实现文件上传.

Day08

Debug调试

在这里插入图片描述

http Client 应用

在这里插入图片描述

503 异常分析

在这里插入图片描述

在这里插入图片描述

修改文件上传工程结构

在这里插入图片描述

Day09

网关执行流程分析

在这里插入图片描述

存在多个跨域设计

在这里插入图片描述

自定义执行链设计

在这里插入图片描述

Spring MVC 拦截器

在这里插入图片描述

Spring框架生态设计

在这里插入图片描述

Day10

JVM 参数说明

输出JVM类加载信息(假如想看类启动时,相关类的加载顺序,可以配置JVM参数: -XX:+TraceClassLoading)
在这里插入图片描述

调整JVM堆内存大小,并输出JVM 垃圾回收基本信息(假如设置JVM堆内存大小可以通过 -Xmx设置最大堆内存,-Xms设置最小堆内存,-XX:+PrintGC输出程序运行时的GC信息)
在这里插入图片描述

AOP 执行流程分析

在这里插入图片描述

Day11

文件上传架构升级

在这里插入图片描述

SpringSecurity 执行流程

在这里插入图片描述

JS中的断点调试

在这里插入图片描述

Day12

单点登陆方案

方案1:将登录状态存储到redis等数据库,例如:

在这里插入图片描述
在这里插入图片描述

方案2:将登录状态存储到jwt令牌中,例如:

在这里插入图片描述

401 认证异常

在这里插入图片描述
在这里插入图片描述

检查令牌

在这里插入图片描述

在这里插入图片描述

权限校验过程分析

在这里插入图片描述

postman 上传文件

在这里插入图片描述

在这里插入图片描述

403 访问被拒绝

在这里插入图片描述

资源请求图标问题

在这里插入图片描述

Day13

Postman测试刷新令牌

在这里插入图片描述

生成序列化ID

在这里插入图片描述

Idea&@Autowired

当使用@Autowired注解描述属性时,假如属性下有红色波浪线提示,可参考如下配置
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值