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、如何配置一个路由?
    image.png
    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配置如下

    1. spring:
    2. gateway:
    3. globalcors: # 全局的跨域处理
    4. add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题
    5. corsConfigurations:
    6. '[/**]':
    7. allowedOrigins: # 允许哪些网站的跨域请求
    8. - "http://localhost:8090"
    9. allowedMethods: # 允许的跨域ajax的请求方式
    10. - "GET"
    11. - "POST"
    12. - "DELETE"
    13. - "PUT"
    14. - "OPTIONS"
    15. allowedHeaders: "*" # 允许在请求中携带的头信息
    16. allowCredentials: true # 是否允许携带cookie
    17. maxAge: 360000 # 这次跨域检测的有效期