sentinel服务提供者接入
<properties>
<sentinel.version>1.6.3</sentinel.version>
</properties>
<dependencies>
<!-- 适配dubbo -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-dubbo-adapter</artifactId>
<version>${sentinel.version}</version>
</dependency>
<!-- 开启注解 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-annotation-aspectj</artifactId>
<version>${sentinel.version}</version>
</dependency>
<!-- 客户端需要引入 Transport 模块来与 Sentinel 控制台进行通信 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-transport-simple-http</artifactId>
<version>${sentinel.version}</version>
</dependency>
<!-- 动态规则配置 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
<version>${sentinel.version}</version>
</dependency>
<!-- (集群客户端)token client -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-cluster-client-default</artifactId>
<version>${sentinel.version}</version>
</dependency>
</dependencies>
<!-- 允许aop -->
<aop:aspectj-autoproxy expose-proxy="true" proxy-target-class="true"/>
<!-- 注册 SentinelResourceAspect,使用注解方式 -->
<bean id="sentinelResourceAspect" class="com.alibaba.csp.sentinel.annotation.aspectj.SentinelResourceAspect"/>
@Service("demoService")
public class DemoServiceImpl implements DemoService {
@Override
@SentinelResource( value="sayHello", fallback = "sayHelloFallback" )
public String sayHello(String name) {
try {
Thread.sleep( 3000 );
}catch ( Exception e ){
e.printStackTrace();
}
return "0:Hello " + name;
}
/**
* 熔断降级/qps限流的操作(可进行写日志之类的操作)
* @param name 参与与上面执行的参数列表顺序和类型都一致
* @param throwable 必须在所有参数的最后
* @return
*/
public String sayHelloFallback(String name, Throwable throwable ){
return "fallback - " + name + " - " + throwable.getMessage();
}
// 设置控制台地址(必要)
-Dcsp.sentinel.dashboard.server=127.0.0.1:8080
// 设置此sentinel的端口(必要)
-Dcsp.sentinel.api.port=6000
// 设置sentinel的pid(可选)
-Dcsp.sentinel.log.use.pid=true
// 设置sentinel的命名空间(可选)
-Dproject.name=DemoA
网友评论