spring cloud alibaba 实战教程
时间: 2023-05-26 10:07:16 浏览: 127
1. 环境搭建和项目创建
首先,我们需要确保已经安装了JDK和Maven,然后创建一个Spring Boot项目,并添加相关的依赖。
在pom.xml文件中,添加如下依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>0.2.1.RELEASE</version>
</dependency>
这里使用了nacos作为注册中心和配置中心,sentinel作为限流熔断组件。
2. Nacos配置中心使用
创建一个配置文件,取名为bootstrap.yml,内容如下:
spring:
cloud:
nacos:
discovery:
server-addr: localhost:8848
config:
server-addr: localhost:8848
file-extension: yaml
group: EXAMPLE_GROUP
prefix: /example
这里定义了nacos的注册中心和配置中心的地址,并指定了配置文件的格式及其所属的分组和路径前缀。
然后创建一个application.yml文件,用于配置应用的参数。
示例:
spring:
application:
name: example-service
server:
port: 8080
定义了应用的名称和端口号。
3. Nacos注册中心使用
在启动类上添加@EnableDiscoveryClient注解,表示使用nacos作为注册中心。
示例:
@SpringBootApplication
@EnableDiscoveryClient
public class ExampleServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ExampleServiceApplication.class, args);
}
}
4. Nacos配置中心读取配置
使用@Value注解来读取nacos配置中心中的配置。
示例:
@Service
public class ExampleService {
@Value("${example.config}")
private String config;
public String getConfig() {
return config;
}
}
这里配置中心中的key为example.config,可以在nacos控制台中进行添加和修改。
5. Sentinel限流熔断使用
在启动类上添加@EnableCircuitBreaker和@EnableFeignClients注解,表示启用熔断和使用Feign进行http调用。
示例:
@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker
@EnableFeignClients
public class ExampleServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ExampleServiceApplication.class, args);
}
}
在使用Feign进行http调用的接口上添加@FeignClient和@SentinelResource注解。
示例:
@FeignClient(name = "example-service")
public interface ExampleClient {
@RequestMapping("/test")
@SentinelResource("test")
String test();
}
这里定义了一个FeignClient,调用了example-service服务的/test接口,并使用@SentinelResource注解指定了资源名称,用于进行限流和熔断。
6. 总结
至此,spring cloud alibaba的基础使用已经介绍完毕,通过nacos作为注册中心和配置中心,sentinel作为限流熔断组件,我们可以快速地开发一个分布式服务的系统。
阅读全文