sentinel服务接入

2019-08-09  本文已影响0人  ChenJC2019

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
上一篇 下一篇

猜你喜欢

热点阅读