1.配置中心的作用

  1. Nacos配置中心一方面可以将配置集中管理,另一方可以在配置变更时,及时通知微服务,实现配置的热更新。

2.nacos如何保证高可用

 首先可以先搭建多个nacos配置中心,数据从mysql中获取,接着部署一个Nginx,利用Nginx的反向代理加上负载均衡的功能,把请求分发给多个nacos,实现nacos的高可用.

3.nacos如何动态变更配置

  • 基于@Value
    • 在@Value注入的变量所在类上添加注解@RefreshScope
  • 基于@ConfigurationProperties
    • 需要自己手写一个配置类`` ```java @Component @Data @ConfigurationProperties(prefix = “pattern”) //前缀是pattern,该注解默认就是热更新 public class PatternProperties { private String dateformat; }

@Autowired private PatternProperties patternProperties;

@GetMapping("now")
public String now(){
    return LocalDateTime.now().format(DateTimeFormatter.ofPattern(patternProperties.getDateformat()));
}

```

4.nacos如何实现多环境配置

nacos默认读取两个文件
  • 服务名-环境.后缀名
  • 服务名.后缀名 (多环境共享)

    优先级

  • 环境独享的配置 > 多环境共享的 > 服务本地的

    5.nginx介绍

    反向代理服务器:在服务器端接收客户端的请求,然后把请求分发给具体的服务器进行处理,然后再将服务器的响应结果反馈给客户端。Nginx就是其中的一种反向代理服务器软件。

    6.feign的介绍及作用?

    Feign是一个声明式的http客户端,其作用就是帮助我们优雅的实现http请求的发送,可以避免代码可读性差,编程体验不统一,参数复杂URL难以维护等问题.

    7.feign的基本工作原理?

  • 首先通过@EnableFeignCleints注解开启FeignCleint

  • 根据Feign的规则实现接口,并加@FeignCleint注解
  • 程序启动后,会进行包扫描,扫描所有的@ FeignCleint的注解的类,并将这些信息注入到ioc容器中。
  • 当接口的方法被调用,通过jdk的代理,来生成具体的RequesTemplate
  • RequesTemplate在生成Request
  • Request交给Client去处理,其中Client可以是HttpUrlConnection、HttpClient也可以是Okhttp
  • 最后Client被封装到LoadBalanceClient类,这个类结合类Ribbon做到了负载均衡。

    8.feign的性能优化?

  • 使用ApacheHttpClient(支持连接池)代替默认的URLConnection

    • 引依赖,加配置
  • 日志,最好basic、none

    9.gateway网关的介绍及作用?

    Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。

  • 作用

    • 请求路由、负载均衡
    • 身份认证、权限校验
    • 请求限流

网关路由的流程图
image.png

10.gateway网关中路由的作用?

  路由是构建网关的基本模块, 他由ID,目标URI,一系列的断言和过滤器组成,如果断言为 true 则匹配该路由,以达到请求转发的目的.

11.如何配置一个路由?

  • 路由规则
    • id 路由的唯一标示
    • uri 路由的目的地:lb://userserivce
    • predicates 断言,路由的匹配条件,符合了才做路由
    • filters 过滤器可选的

      12.gateway中断言的作用?

      每一个Predicate的使用,可以理解为:当满足这种条件后才会被转发,如果是多个,那就是都满足的情况下被转发。