每天工作中都在用SpringBoot框架,当面试的时候被问到Springcloud的基本组件都有哪些的时候,我当时是蒙圈的状态,告诉大家在使用底层东西的时候基本的业务知识还是得掌握下,这样才能完美的使用。
SpringCloud是一个基于SpringBoot的实现云应用的开发工具,
SpringBoot专注于快速/方便集成单个个体,使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置。
SpringCloud专注全局的服务治理框架,很大一部分是基于SpringBoot来实现的。
我们来说下SpringCloud的组件有五种
1. 服务发现与注册,SpringCloud中常用的服务注册中心有Eureka和Nacos。服务注册中心负责服务的注册与发现。服务提供者在启动时向注册中心注册自己的服务信息,服务消费者通过服务名向注册中心咨询并获取所有的服务实例,从而实现服务的动态发现和调用。
2. 客户端负载均衡,SpringCloud Ribbon提供了客户端负载均衡的功能,它基于HTTP和TCP的客户端负载均衡工具。支持简单轮询,随机等多种负载均衡策略。
3. 熔断机制 SpringCloud Hystrix提供了断路器的功能,用于防止因单个服务的调用失败导致多个请求的阻塞或失败。断路器模式允许应用程序在检测到故障调用链,避免雪崩效应。同时也能在故障解决后尝试重新连接。
4. API网关,SpringCloud Gateway 是SpringCloud提供的API网关组件。用于同意处理微服务架构中的请求,Gateway可以提供请求的路由/过滤等功能,支持异步非阻塞处理。提高系统的吞吐量和相应速度。
5. 分布式配置管理 SpringCloud Config提供了分布式配置管理的功能,用于集中股那里微服务的配置信息,通过Config可以动态地更新服务配置,提供配置管理的灵活性和便利性。
SpringBoot 的核心注解
1 @SpringBootApplication 是一个组合注解,包含了@SpringBootConfiguration @EnableAutoConfiguration @Component三个注解 它通常放在主应用程序类上。
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
2 @EnableAutoConfiguration 启用自动配置,SpringBoot 会尝试基于类路径设置/其他bean以及各种属性设置自动配置。
3 @RestController 是一个方便的注解,它是@Controller和@ResponseBody的组合,添加了RestController的类中方法返回的值通常被直接写入HTTp响应体中,是一种REST风格的控制器。