springboot集成Sentinel「入门」

478 阅读1分钟

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 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/…