1、配置中心的作用
管理微服务中的配置
将那些需要变动的配置写到配置中心,微服务启动时会先读取配置中心中的配置,再和本地的配置结合,作为完整配置
2、nacos如何保证高可用
搭建nacos集群
3、nacos如何动态变更配置
在resourse目录下编写bootstrap.yaml文件
①、通过@value注解注入,在controller层加@RefreshScope注解
②、通过@ConfigurationProperties注入,自动刷新
4、nacos如何实现多环境配置
把共享的配置文件写在以服务名称.yaml中
nginx介绍
Nginx是一个http服务器。是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http 服务器/反向代理服务器
反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
5、feign的介绍及作用?
RestTemplate的缺点:①代码可读性差②参数复杂时,难以维护
feign是一个声明式客户端,其作用就是帮我们优雅的实现http请求的发送
6、feign的基本工作原理?
①在启动类上的@EnableFeginClients会扫描指定的包下,找所有标记了@FeginClient的接口
②feign会使用动态代理创建标记了@FeginClient的接口的实现类对象,将代理对象放到ioc容器中
③代理对象方法中会根据服务名称获取服务列表,然后根据负载均衡算法得到要调用的服务地址
④利用feign集成的http客户端执行请求
7、feign的性能优化?
fegin集成了URLConnection、Apache HttpClient、OKHttp
默认用的是URlConnection,不支持连接池,频繁的建立连接,销毁链接很消耗性能
而通过配置是可以更改http客户端,选择支持连接池的客户端,一般选择Apache HttpClient
8、gateway网关的介绍及作用?
所有的请求会先通过网关,然后网关根据路由规则,从注册中心拉取服务列表,再通过负载均衡规则分配到指定的服务中
作用:
身份认证和授权
服务路由和负载均衡
请求限流
9、gateway网关中路由的作用?
通过路由规则,将请求分发到指定的服务中
10、如何配置一个路由?
11、网关执行流程
前端的请求会先通过网关,网关再通过断言规则,向注册中心拉取服务列表,然后再通过负载均衡的方式调用相应的微服务
12、gateway中断言的作用?
判断请求具体访问那个微服务
13、gateway中过滤器的作用?
可以对进入网关的请求和微服务的响应做处理
14、全局过滤器的作用?
对所有路由都生效的过滤器,并且可以自定义处理逻辑
15、实现全局过滤器的步骤
① 实现GlobFilter接口,重写Filter方法
② 添加@Order注解或实现Orderd接口
③ 编写处理逻辑
16、如何保证过滤器的执行顺序?
每一个过滤器都必须指定一个int类型的order值,值越小,优先级越高,执行顺序越靠前
GolbFilter通过实现Ordered接口,或者添加@Ordered注解来指定Ordered的值
路由过滤器和defaultFilter的order有spring指定,默认按照声明顺序从1递增
当过滤器的order值一样时,会按照defaultFilter>路由过滤器>GolbFilter的顺序执行
17、跨域问题:
域名不同
域名相同,端口不同
跨域问题:浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题
在网关服务中的yml配置如下
spring:gateway:globalcors: # 全局的跨域处理add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题corsConfigurations:'[/**]':allowedOrigins: # 允许哪些网站的跨域请求- "http://localhost:8090"allowedMethods: # 允许的跨域ajax的请求方式- "GET"- "POST"- "DELETE"- "PUT"- "OPTIONS"allowedHeaders: "*" # 允许在请求中携带的头信息allowCredentials: true # 是否允许携带cookiemaxAge: 360000 # 这次跨域检测的有效期
