SpringCloud面试题
Spring Cloud 并不是一个单一框架,而是一套 微服务解决方案集合 ,它整合了很多组件,用来解决微服务架构中的常见问题,比如:服务注册与发现、配置管理、负载均衡、熔断限流、网关路由、链路追踪等
SpringCloud面试题
SpringCloud有哪些组件
通过实际的请求链路来回答
请求时,先进入Spring Gateway网关层,在网关层里可以结合Sentinel或Resilience4j进行限流熔断控制,通过限流后,通过路由规则,转发到对应的服务,并结合Nacos服务注册,拿到对应服务的实例列表,并通过loadBalancer进行负载均衡。
服务间的调用通过openFeign,比手写http请求要方便不少。
一个服务可能存在多个实例,将他们的配置文件统一放到Nacos进行统一管理并共享。
如果Nacos或被调用方的服务挂了,还可以走Sentinel或Resilience4j的降级兜底方案,保护核心业务链路。
异步的逻辑,可以借助RocketMQ消息队列,进行业务解耦和削峰。
整个系统被分解为多个服务,跨服务的事务问题通过Seata分布式事务进行解决。
服务多了组件也多了,就需要进行统一的监控,需要及时了解各个服务的状态,此时就可以用到Grafana+Prometheus,服务出现问题可以实现及时消息通知。
整体分为网关、限流熔断、负载均衡、服务注册与配置统一管理、消息队列、分布式事务、监控。
