一,Spring Boot启动过程简述如下:
1,启动类:标有 @SpringBootApplication 注解的类是Spring Boot应用的入口点。
2,@SpringBootApplication注解是一个复合注解,包含
@SpringBootConfiguration (表示这是一个Spring Boot配置类)、
@EnableAutoConfiguration(启用Spring Boot自动配置)以及
@ComponentScan(指定Spring扫描的包路径)。
3,运行 SpringApplication.run() 方法启动应用。
4,SpringApplication 类负责启动Spring应用上下文。它会创建一个 ApplicationContext 实例。
5,run方法内部会做一系列工作,包括检查类路径、加载配置文件、实例化Spring容器等。
6,自动配置:@EnableAutoConfiguration会根据类路径上的jar依赖和
application.properties 或 application.yml 文件中的配置来自动配置Spring容器。
7,一旦容器启动完成,SpringApplication会启动完成并启动监听器。
以下是一个简单的Spring Boot启动类示例:
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
二,SpringCloud的五大组键
1,服务发现与注册:Eureka Server和Eureka Client,Netflix Eureka,或Alibaba NCOS
Eureka 是一个服务注册与发现组件,它可以让微服务应用动态地注册和发现服务。
通过 Eureka,微服务应用可以轻松地找到其他服务并实现服务之间的通信。
2,客户端负载均衡,Spring Cloud Ribbon 负载均衡,Netflix Ribbon
是一个负载均衡组件,它可以帮助微服务应用在多个服务实例之间进行负载均衡,
提高系统的性能和可用性。Ribbon 支持多种负载均衡策略,并且与 Eureka 集成,
可以自动从 Eureka 服务注册中心获取服务实例信息。
3,断路器,Spring Cloud Hystrix,Netflix Hystrix
是一个容错管理组件,它可以帮助微服务应用处理分布式系统中的故障和延迟。
Hystrix 提供了断路器、超时和降级等机制,可以保护系统免受故障的影响,并提高系统的可靠性。
4,服务网关,Spring Cloud Gateway,Zuul网关,fegin请求,Netflix Zuul
是一个网关组件,它可以为微服务应用提供统一的访问入口和路由功能。
Zuul 可以实现请求的路由、过滤、负载均衡等功能,同时与 Eureka 集成,
可以动态地发现和路由到服务实例。
5,分布式配置管理,Spring Cloud Config,或Alibaba NCOS
提供服务端和客户端,服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境。
Config是静态配置的。如果需要动态配置,可以使用spring cloud bus进行动态配置更新。