SoFunction
Updated on 2025-03-02

Issues in integration of Sentinel in SpringCloud project

Integrate in Spring Cloud projectsSentinelIt can help you realize the functions of service flow control, fuse degradation, etc., thereby improving the stability and usability of the system.

Here are the steps to integrate Sentinel:

1. Add dependencies

First, you need to add Sentinel-related dependencies to your project.

If you are using Maven, you canAdd the following dependencies to the file:

<!-- Sentinel Core library -->
<dependency>
    <groupId></groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
    <version>${}</version>
</dependency>

<!-- Sentinel Console dependencies -->
<dependency>
    <groupId></groupId>
    <artifactId>sentinel-transport-simple-http</artifactId>
    <version>${}</version>
</dependency>

<!-- Sentinel of Spring Cloud Integration -->
<dependency>
    <groupId></groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel-gateway</artifactId>
    <version>${}</version>
</dependency>

<!-- If using Nacos As a configuration center -->
<dependency>
    <groupId></groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>${}</version>
</dependency>

<!-- Spring Cloud Other dependencies -->
<dependency>
    <groupId></groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>${}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

Please make sure to replace${}${}and${}The version number you actually use.

2. Configure Sentinel console address

existorConfigure the address of the Sentinel console in so that the Sentinel client can connect to the console and report data.

# 
-address=localhost:8080
=8719 # Optional, default is 8719
# Or insentinel:
  transport:
    dashboard-address: localhost:8080
    port: 8719

3. Start the Sentinel console

Launch the Sentinel console, usually a standalone Java application.

You can download the latest version of the console package from Sentinel's GitHub repository and launch it.

# Unzip the downloaded fileunzip sentinel-dashboard-*.zip

# Start the consolecd sentinel-dashboard-*
java -jar sentinel-dashboard-*.jar

4. Configure current limit and fuse rules

You can configure current limiting and fuse rules in the Sentinel console, or programmatically configure rules in your application.

Configuring rules by programming

import ;
import ;

import ;
import ;

public class SentinelConfig {
    public static void initRules() {
        List<FlowRule> rules = new ArrayList<>();
        FlowRule rule = new FlowRule();
        ("yourResourceName");
        (20); // Set the number of requests allowed per second        (RuleConstant.FLOW_GRADE_QPS); // Set the current limit threshold type to QPS        (rule);
        (rules);
    }
}

Configuring rules through the console

Log in to the Sentinel console, select your app, and configure current limit and circuit breaker rules in the Rules Management page.

5. Annotations using Sentinel

Use Sentinel-provided annotations in your service to protect your method or service.

import ;

public class YourService {
    
    @SentinelResource(value = "yourResourceName", fallback = "fallbackMethod")
    public String yourMethod() {
        // Business logic    }

    public String fallbackMethod(Throwable ex) {
        // Handle exceptions        return "Falling back...";
    }
}

6. Integrate Sentinel with Spring Cloud Gateway

If you use Spring Cloud Gateway, Sentinel can be integrated as the gateway layer traffic control and fuse mechanism.

// Add dependencies<dependency>
    <groupId></groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel-gateway</artifactId>
    <version>${}</version>
</dependency>

Then configure the routing rules for Gateway and use Sentinel's annotations or API to control traffic.

7. Customize the current limiting processing logic

How to customize the current limiting processing logic has been mentioned in the previous question and answer, so I will not repeat it here.

Summarize

Through the above steps, you can integrate Sentinel into your Spring Cloud project and leverage Sentinel's capabilities to protect your services from burst traffic.

This helps improve the stability and availability of services, especially in high concurrency scenarios.

The above is personal experience. I hope you can give you a reference and I hope you can support me more.