See the Wiki for full documentation, examples, operational details and other information.
See the Javadoc for the API.
See 中文Readme for readme
With the popularity of distributed systems, the stability between services is becoming more important than ever before. Sentinel takes "flow" as breakthrough point, and works on multiple fields including flow control, concurrency, circuit breaking, load protection, to protect service stability
Sentinel has below features:
- Rich applicable scenarios for flow control, concurrency, circuit breaking, load protection
- Integrated monitor, operation module,
- Easy extension point
Frist wrap code snippet via sentinel api: SphU.entry("RESOURCENAME")
and entry.exit()
.
Entry entry = null;
try {
entry = SphU.entry("HelloWorld");
// BIZ logic being protected
System.out.println("hello world");
} catch (BlockException e) {
// handle block logic
} finally {
// make sure that the exit() logic is called
if (entry != null) {
entry.exit();
}
}
By default, we will provide adapter to do this for popular frameworks.
More examples and information can be found in the How To Use section.
How it works can be found in How it works
Samples can be found in the demo module.
Example for Maven:
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-core</artifactId>
<version>x.y.z</version>
</dependency>
If you need to download the jars instead of using a build system, create a Maven pom file like this with the desired version:
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.alibaba</groupId>
<artifactId>download-sentine</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Simple POM to download sentinel-core and dependencies</name>
<dependencies>
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-core</artifactId>
<version>x.y.z</version>
<scope/>
</dependency>
</dependencies>
</project>
Then execute:
mvn -f download-sentinel-pom.xml dependency:copy-dependencies
Sentinel requires Java 6 or later.
- Download Sentinel-Dashboard module
- Run command to package this module:
$ mvn clean package -Dmaven.test.skip
- Start dashboard
java -Dserver.port=8080 -Dcsp.console.server=localhost:8080 -jar target/sentinel-dashboard.jar
- Include sentinel client in your application by mvn or download this library:
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-transport-simple-http</artifactId>
<version>x.y.z</version>
</dependency>
- Add JVM parameter
-Dcsp.console.server=consoleIp:port
when you start your application - Trigger your resource
After above steps, you can check your application in "Machnes" and resources runtime infomation in your dashboard.
More details please refer to: Dashboard
Sentinel will generate logs for trouble shooting. All the infos can be found in logs
For bugs, questions and discussions please use the GitHub Issues
Contact us: sentinel@linux.alibaba.com