SpringCloud溯源——从单体架构到微服务Microservices架构 & 分布式和微服务 & 为啥要用微服务
Spring Cloud 是一系列框架的有序集合,它提供了一些工具来快速实现分布式系统中的常见模式。例如,配置管理、服务发现、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态等。
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,这些服务都在自己的进程中运行,服务之间通常通过网络调用。每个服务都围绕业务功能进行构建,并且可以独立部署到生产环境。
微服务架构的好处包括:
- 增加扩展性:每个服务都可以根据需要独立扩展。
- 增加弹性:一个服务的故障不会影响其他服务。
- 增加单个微服务的复杂性。
以下是一个简单的Spring Cloud示例,使用Spring Cloud Netflix的Eureka作为服务发现服务器,并使用Spring Cloud OpenFeign作为微服务间的通信机制。
// 依赖管理
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
implementation 'org.springframework.boot:spring-boot-starter-web'
}
// 启动类
@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
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
// 微服务
@FeignClient("service-provider")
public interface ServiceProviderClient {
@GetMapping("/data")
String getData();
}
@RestController
public class ConsumerController {
@Autowired
private ServiceProviderClient serviceProviderClient;
@GetMapping("/data")
public String getData() {
return serviceProviderClient.getData();
}
}
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class ServiceConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceConsumerApplication.class, args);
}
}
application.properties
spring.application.name=service-consumer
server.port=8080
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
在这个例子中,我们有一个Eureka服务器,一个服务提供者和一个服务消费者。服务提供者注册到Eureka服务器,并定期发送心跳。服务消费者通过Eureka服务器查找服务提供者,并使用Spring Cloud OpenFeign进行远程调用。这个例子展示了如何使用Spring Cloud创建一个基本的微服务架构。
评论已关闭