以下是使用Spring Cloud Alibaba搭建微服务的基本步骤,包括Nacos作为服务注册和发现中心,Feign用于服务间调用,以及Gateway作为API网关。
- 创建一个Maven项目作为父项目,添加Spring Cloud Alibaba依赖。
 
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Hoxton.SR9</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-dependencies</artifactId>
        <version>2.2.6.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
</dependencies>
- 创建一个服务提供者模块,并添加Nacos Discovery依赖。
 
<dependencies>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
</dependencies>
- 在application.properties中配置Nacos服务器地址。
 
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.application.name=provider-service
- 启动类添加
@EnableDiscoveryClient注解。 
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
    }
}
- 创建一个服务消费者模块,并添加Feign依赖。
 
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
</dependencies>
- 启动类添加
@EnableFeignClients注解。 
@SpringBootApplication
@EnableFeignClients
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}
- 创建一个API接口,并使用Feign进行远程调用。
 
@FeignClient("provider-service")
public interface ProviderClient {
    @GetMapping("/greet")
    String greet(@RequestParam(value = "name") String name);
}
- 创建一个API网关模块,并添加Gateway依赖。
 
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-gateway</artifactId>
    </dependency>
</dependencies>
- 在application.properties中配置Gateway路由规则。
 
spring.cloud.gateway.routes[0].id=greet-service
spring.cloud.gateway.routes[0].uri=lb://provider-service
spring.cloud.gateway.routes[