随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
下面简单入门一下Sentinel,包括服务端和客户端,客户端引入Jar包后,可与服务端通信并完成限流的功能。
一、服务端搭建
服务端搭建非常简单,只需要在 github.com/alibaba/Sen… 下载最新的Jar包sentinel-dashboard-1.8.3.jar(写文章时的最新版本)。
sentinel-dashboard-1.8.3.jar 是标准的Spring Boot应用,通过java -jar sentinel-dashboard-1.8.3.jar 启动。
默认端口是8080,账号密码是:sentinel/sentinel
通过修改启动脚本修改 端口/账号/密码
java -jar -Dserver.port=8888 -Dsentinel.dashboard.auth.username=sentinel -Dsentinel.dashboard.auth.password=123456 sentinel-dashboard-1.8.3.jar
其它详细配置参数,查看官方文档:
启动Jar包后,访问:http://localhost:8080
二、客户端搭建
开发环境
- Spring Boot : 2.1.12.RELEASE
- Spring Cloud :Greenwich.SR5
- Spring Cloud Alibaba : 2.1.2.RELEASE
1. 引入POM 依赖
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR5</spring-cloud.version>
<spring-cloud-alibaba.version>2.1.2.RELEASE</spring-cloud-alibaba.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
</dependencies>
2. application.yml 配置
server:
port: 8001
servlet:
context-path: /springboot-sentinel-client-a
spring:
application:
name: springboot-sentinel-client-a
cloud:
sentinel:
transport:
dashboard: localhost:8080
eager: true
3. 启动类
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
4. 测试接口
@RestController
@RequestMapping(value = "test")
public class TestController {
@GetMapping(value = "/1")
public String test1() {
return "Hello,Sentinel --> 1";
}
@GetMapping(value = "/2")
public String test2() {
return "Hello,Sentinel --> 2";
}
}
启动 springboot-sentinel-client-a 客户端后,在服务端页面查看效果:
然后访问一下测试接口:http://localhost:8001/springboot-sentinel-client-a/test/1
到此,Sentinel 的服务端与客户端完成简单搭建与通信。
springboot集成Sentinel DEMO: gitee.com/renxiaoshi/…