Zuul

作者: a丶逍遥子 | 来源:发表于2020-07-02 11:08 被阅读0次

SimpleHostRoutingFilter

主要处理不走eureka的proxy

整合sentinel

  • 首先引入必须包
    <!-- 专门适配 zuul 的sentinel  类似hystrix-->
    <dependency>
        <groupId>com.alibaba.csp</groupId>
        <artifactId>sentinel-zuul-adapter</artifactId>
        <version>1.7.2</version>
    </dependency>
    <!-- 控制台显示 类似 hystrix-dashboard -->
    <dependency>
        <groupId>com.alibaba.csp</groupId>
        <artifactId>sentinel-transport-simple-http</artifactId>
        <version>1.7.2</version>
    </dependency>
  • 增加zuul过滤器
    @Bean
    public ZuulFilter sentinelZuulPreFilter() {
        return new SentinelZuulPreFilter();
    }

    @Bean
    public ZuulFilter sentinelZuulPostFilter() {
        return new SentinelZuulPostFilter();
    }

    @Bean
    public ZuulFilter sentinelZuulErrorFilter() {
        return new SentinelZuulErrorFilter();
    }
# 控制台展示名称
-Dproject.name=zuul
# 控制台地址 
-Dcsp.sentinel.dashboard.server=localhost:10001
    List<FlowRule> rules = new ArrayList<>();
    FlowRule rule = new FlowRule(resourceName);
    // set limit qps to 20
    rule.setCount(20);
    rule.setGrade(RuleConstant.FLOW_GRADE_QPS);
    rule.setLimitApp("default");
    rules.add(rule);
    FlowRuleManager.loadRules(rules);
private void initDegradeRule() {
    List<DegradeRule> rules = new ArrayList<>();
    DegradeRule rule = new DegradeRule();
    rule.setResource(KEY);
    // set threshold RT, 10 ms
    rule.setCount(10);
    rule.setGrade(RuleConstant.DEGRADE_GRADE_RT);
    rule.setTimeWindow(10);
    rules.add(rule);
    DegradeRuleManager.loadRules(rules);
}
# 启动命令
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar

相关文章

网友评论

      本文标题:Zuul

      本文链接:https://www.haomeiwen.com/subject/bizqqktx.html