Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性简化了分布式系统的开发,如服务发现、服务配置、断路器、智能路由、微代理、控制总线、一次性令牌等等。
Spring Cloud包含多个子项目,如Spring Cloud Config、Spring Cloud Netflix(对Netflix开源服务框架进行集成)、Spring Cloud Consul、Spring Cloud Zookeeper、Spring Cloud Gateway等。
以下是Spring Cloud的一些主要特性:
- 分布式/版本化配置
- 服务注册和发现
- 智能路由
- 负载均衡
- 断路器
- 分布式消息传递
以下是一个简单的Spring Cloud服务注册和发现的例子,使用Spring Cloud Netflix的Eureka。
- 添加依赖到pom.xml:
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
</dependencies>
 
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>- 配置应用为Eureka服务器,在application.properties中添加:
spring.application.name=eureka-server
server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/- 启动类添加@EnableEurekaServer注解:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
 
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}以上代码创建了一个简单的Eureka服务器,用于服务注册和发现。在实际应用中,你还需要创建服务提供者,并将它们注册到Eureka服务器。