1.配置中心的作用? 如何使用?
作用
统一配置管理
配置热更新
配置共享
搭建Nacos集群
使用
①在Nacos中添加配置文件
②在微服务中引入nacos的config依赖
③在微服务中添加bootstrap.yml,配置nacos地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去nacos读取哪个文件
2.nacos如何动态变更配置?
Nacos配置更改后,微服务可以实现热更新,方式:
①通过@Value注解注入,结合@RefreshScope来刷新
②通过@ConfigurationProperties注入,自动刷新
注意事项:
•不是所有的配置都适合放到配置中心,维护起来比较麻烦
•建议将一些关键参数,需要运行时调整的参数放到nacos配置中心,一般都是自定义配置
3.nacos如何保证高可用?
搭建Nacos集群
①搭建MySQL集群并初始化数据库表
②下载解压nacos
③修改集群配置(节点信息)、数据库配置
④分别启动多个nacos节点
⑤nginx反向代理
4.feign的介绍及作用?
Feign是一个声明式的http客户端
帮助我们优雅的实现http请求的发送
解决了RestTemplate方式调用存在的问题如
•代码可读性差,编程体验不统一
•参数复杂URL难以维护
5.如何使用feign进行远程服务调用?
①引入依赖
②添加@EnableFeignClients注解
③编写FeignClient接口
④使用FeignClient中定义的方法代替RestTemplate
6.feign的基本工作原理?
程序启动时,检查是或否有@EnableFeignClient注解,如果有这个注解,就开启包扫描,扫描被@FeignClient注解的接口。找到这样接口之后会把接口名和注解信息一块取出来,赋值给BeanDefinitionBuilder,然后根据BeanDefinitionBuilder得到BeanDefinition然后把BeanDefinition注入到IOC容器当中。
注入BeanDefinition之后,通过JDK的代理,如果调用Feign Client接口里面的方法,这个方法会被拦截,然后在SynchronousMethodHandler类当中进行拦截处理,根据RequestTemplate生成Request请求对象,然后通过HTTP client进行HTTP请求获取response。
7.是否对feign进行过性能优化?
1.使用HttpClient或OKHttp代替URLConnection
①引入feign-httpClient依赖
②配置文件开启httpClient功能,设置连接池参数
2.日志级别生产环境尽量用basic
8.gateway网关的介绍及作用?
网关的角色是作为一个 API 架构,用来保护、增强和控制对于 API 服务的访问
Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关
网关的作用:
•对用户请求做身份认证、权限校验
•将用户请求路由到微服务,并实现负载均衡
•对用户请求做限流
9.如何搭建一个gateway网关?
1.创建项目,引入nacos服务发现和gateway依赖
2.创建启动类,配置application.yml,包括服务基本信息、nacos地址、路由
路由配置包括:
1.路由id:路由的唯一标示
2.路由目标(uri):路由的目标地址,http代表固定地址,lb代表根据服务名负载均衡
3.路由断言(predicates):判断路由的规则,
4.路由过滤器(filters):对请求或响应做处理
10.网关中路由的作用?
一切请求都必须先经过gateway,但网关不处理业务,而是 根据某种规则,把请求转发到某个微服务,这个过程叫做路由。当然路由的目标服务有多个时,还需要做负载均衡。
11.gateway中断言的作用?
l判断请求是否符合要求,符合则转发到路由目的地
