Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性简化了分布式系统的开发,通过集成现有的服务发现和治理模式,如Netflix Eureka、Netflix Hystrix、Spring Cloud Config等。
以下是一个简单的Spring Cloud微服务项目架构示例:
- 使用Spring Cloud Netflix Eureka作为服务注册与发现。
- 使用Spring Cloud Feign进行服务间调用。
- 使用Spring Cloud Config进行集中配置管理。
- 使用Spring Cloud Hystrix进行服务熔断和降级。
- 使用Spring Cloud Sleuth进行调用链追踪。
以下是一个简单的代码示例:
Eureka Server:
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
Eureka Client (Service Provider):
@EnableEurekaClient
@SpringBootApplication
public class ServiceProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceProviderApplication.class, args);
}
}
Feign Client:
@EnableFeignClients
@EnableEurekaClient
@SpringBootApplication
public class FeignConsumerApplication {
@Bean
public Feign.Builder feignBuilder() {
return Feign.builder();
}
public static void main(String[] args) {
SpringApplication.run(FeignConsumerApplication.class, args);
}
}
@FeignClient("service-provider")
public interface ServiceProviderClient {
@GetMapping("/service")
String getService();
}
Config Server:
@EnableConfigServer
@EnableEurekaClient
@SpringBootApplication
public class ConfigServerApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigServerApplication.class, args);
}
}
Config Client:
@RefreshScope
@EnableConfigClient
@EnableEurekaClient
@SpringBootApplication
public class ConfigClientApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigClientApplication.class, args);
}
}
Hystrix Dashboard:
@EnableHystrixDashboard
@EnableEurekaCli