"微服务" 架构是一种软件架构风格,它将单一应用程序开发为一组小型服务的集合。每个服务运行在自己的进程中,服务间通信通常通过HTTP RESTful API进行。Spring Cloud是一个提供工具支持以便于开发者构建微服务系统的Spring子项目。
Spring Cloud提供的关键功能包括服务发现(Eureka),断路器(Hystrix),智能路由(Zuul),分布式配置(Spring Cloud Config)等。
以下是一个简单的Spring Cloud微服务示例,使用Eureka作为服务发现。
- 创建Eureka服务器(注册中心):
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
application.properties:
spring.application.name=eureka-server
server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
- 创建服务提供者(微服务):
@SpringBootApplication
@EnableEurekaClient
@RestController
public class ServiceProviderApplication {
@Value("${server.port}")
private String port;
@GetMapping("/hello")
public String hello() {
return "Hello from port: " + port;
}
public static void main(String[] args) {
SpringApplication.run(ServiceProviderApplication.class, args);
}
}
application.properties:
spring.application.name=service-provider
server.port=${random.int[1000,65535]}
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
在这个例子中,我们创建了一个Eureka服务器和一个服务提供者。服务提供者将它的信息注册到Eureka服务器,消费者可以通过Eureka服务器发现服务并与之通信。
这只是一个简单的示例,实际的微服务架构可能涉及更复杂的配置和管理,包括服务容错、负载均衡、配置管理等。