Skip to content

codemoretop/Sentinel

 
 

Repository files navigation

Sentinel: The Flow Sentinel of your application

Build Status

Documentation

See the Wiki for full documentation, examples, operational details and other information.

See the Javadoc for the API.

See 中文Readme for readme

What does it do?

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

"Hello world"

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.

Maven

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.

Run Dashboard

  1. Download Sentinel-Dashboard module
  2. Run command to package this module:
$ mvn clean package -Dmaven.test.skip
  1. Start dashboard
java -Dserver.port=8080 -Dcsp.console.server=localhost:8080 -jar target/sentinel-dashboard.jar
  1. 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>
  1. Add JVM parameter -Dcsp.console.server=consoleIp:port when you start your application
  2. 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

Trouble shooting and logs

Sentinel will generate logs for trouble shooting. All the infos can be found in logs

Bugs and Feedback

For bugs, questions and discussions please use the GitHub Issues

Contact us: sentinel@linux.alibaba.com

About

高可用防护的流量管理框架

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 82.3%
  • JavaScript 7.8%
  • HTML 5.6%
  • CSS 4.3%