简述SpringCloud的核心组件有哪些?
Eureka,Ribbon,Feign,Zuul,Hystrix,Spring Cloud Config,Spring Cloud Sleuth
简述Spring Boot与Spring Cloud之间的关系
- springcloud必然依赖于springboot,属于依赖关系。
- Springboot专注于快速方便的开发单个个体微服务。
- SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务。
简述Redis支持的数据类型并说明RDB与AOF 的不同,至少写出5种数据类型
RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储.
AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾
1,string。这是Redis最基本的结构。
2,list。redis的value可以是若干个字符串组成的列表。
3,set。集合。value可以是若干个字符串组成的集合。
4,zset,有序集合。zset是在set的基础上增加了排序的功能。
5,hash。redis的value本身,可以是一个hash表,由若干个key-value对组成。
简述在Spring Cloud 中如何实现基于openFeign的服务调用
(1)首先通过@EnableFeignClients注解开启FeignClient 功能。程序启动时,会通过该注解开启对@FeignClient注解的包扫描。
(2)根据Feign规则实现接口,并在接口上面添加@FeignClient注解。
(3)程序启动后,会进行包扫描,扫描所有的@FeignClient注解类,并将这些信息注人IoC容器。
(4)当接口方法被调用时,首先通过JDK的代理生成具体的RequestTemplate 模板对象。然后根据RequestTemplate再生成HTTP请求的Request对象,最后把Request对象交给Client处理。
gateway的实现原理?
(1)客户端向Spring Cloud Gateway发出请求
(2 ) DispatcherHandler接收用户请求。
(3) RoutePredicateHandlerMapping进行路由匹配。
(4)如果网关处理程序发现请求与路由匹配,则将请求发送到FilteringWebHandler (即网关的处理程序)。如果发现请求与路由不匹配,则将请求返给DispatcherHandler处理。
(5) FilteringWebHandler通过特定过滤器发送请求,先执行所有“PRE”逻辑,然后进行代理请求,最后执行“POST”逻辑。
(6) FilteringWebHandler将请求转发到具体的服务中。
(7) FilteringWebHandler将处理结果返给用户。