当前位置: 首页 > news >正文

版面设计经历了哪几个阶段重庆seo网络推广平台

版面设计经历了哪几个阶段,重庆seo网络推广平台,做网站注意什么问题,衢州建站背景 在微服务架构下,每个服务的性能都不同,为避免出现流量洪峰将服务冲垮,需要依赖限流工具来保护服务的稳定性。sentinel是阿里提供的限流工具,社区活跃,功能也很全面,包含实时监控、流控、熔断等功能。…

背景

在微服务架构下,每个服务的性能都不同,为避免出现流量洪峰将服务冲垮,需要依赖限流工具来保护服务的稳定性。sentinel是阿里提供的限流工具,社区活跃,功能也很全面,包含实时监控、流控、熔断等功能。它也提供了spring-cloud-gateway的支持,可以很方便和spring-gateway进行整合。

目标

spring-gateway服务添加sentinel支持,并通过sentinel dashboard进行规则配置,规则数据存在nacos里,支持规则变更实时生效。

方案

服务结构

spring-gateway改动

引入工程依赖

在pom文件里添加sentinel的依赖:

<!--sentinel支持spring-->

<dependency>

    <groupId>com.alibaba.cloud</groupId>

    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>

</dependency>

<!--自动集成spring gateway-->

<dependency>

    <groupId>com.alibaba.cloud</groupId>

    <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>

</dependency>

<!--支持nacos的动态数据源-->

<dependency>

    <groupId>com.alibaba.csp</groupId>

    <artifactId>sentinel-datasource-nacos</artifactId>

</dependency>

加载限流规则

在application.properties文件里添加sentinel规则对应nacos配置信息:

project.name=spring-gateway

sentinel.nacos.default.namespace=SENTINEL_GROUP

spring.cloud.sentinel.datasource.gw_api_group.nacos.server-addr=${spring.cloud.nacos.config.server-addr}

spring.cloud.sentinel.datasource.gw_api_group.nacos.namespace=${spring.cloud.nacos.config.namespace}

spring.cloud.sentinel.datasource.gw_api_group.nacos.data-id=${project.name}-gw_api_group-rules

spring.cloud.sentinel.datasource.gw_api_group.nacos.group-id=${sentinel.nacos.default.namespace}

spring.cloud.sentinel.datasource.gw_api_group.nacos.data-type=json

spring.cloud.sentinel.datasource.gw_api_group.nacos.rule-type=gw_api_group

spring.cloud.sentinel.datasource.gw_flow.nacos.server-addr=${spring.cloud.nacos.config.server-addr}

spring.cloud.sentinel.datasource.gw_flow.nacos.namespace=${spring.cloud.nacos.config.namespace}

spring.cloud.sentinel.datasource.gw_flow.nacos.data-id=${project.name}-gw_flow-rules

spring.cloud.sentinel.datasource.gw_flow.nacos.group-id=${sentinel.nacos.default.namespace}

spring.cloud.sentinel.datasource.gw_flow.nacos.data-type=json

spring.cloud.sentinel.datasource.gw_flow.nacos.rule-type=gw_flow

spring.cloud.sentinel.datasource.degrade.nacos.server-addr=${spring.cloud.nacos.config.server-addr}

spring.cloud.sentinel.datasource.degrade.nacos.namespace=${spring.cloud.nacos.config.namespace}

spring.cloud.sentinel.datasource.degrade.nacos.data-id=${project.name}-degrade-rules

spring.cloud.sentinel.datasource.degrade.nacos.group-id=${sentinel.nacos.default.namespace}

spring.cloud.sentinel.datasource.degrade.nacos.data-type=json

spring.cloud.sentinel.datasource.degrade.nacos.rule-type=degrade

spring.cloud.sentinel.datasource.system.nacos.server-addr=${spring.cloud.nacos.config.server-addr}

spring.cloud.sentinel.datasource.system.nacos.namespace=${spring.cloud.nacos.config.namespace}

spring.cloud.sentinel.datasource.system.nacos.data-id=${project.name}-system-rules

spring.cloud.sentinel.datasource.system.nacos.group-id=${sentinel.nacos.default.namespace}

spring.cloud.sentinel.datasource.system.nacos.data-type=json

spring.cloud.sentinel.datasource.system.nacos.rule-type=system

spring.cloud.sentinel.datasource.authority.nacos.server-addr=${spring.cloud.nacos.config.server-addr}

spring.cloud.sentinel.datasource.authority.nacos.namespace=${spring.cloud.nacos.config.namespace}

spring.cloud.sentinel.datasource.authority.nacos.data-id=${project.name}-authority-rules

spring.cloud.sentinel.datasource.authority.nacos.group-id=${sentinel.nacos.default.namespace}

spring.cloud.sentinel.datasource.authority.nacos.data-type=json

spring.cloud.sentinel.datasource.authority.nacos.rule-type=authority

spring.cloud.sentinel.datasource.param_flow.nacos.server-addr=${spring.cloud.nacos.config.server-addr}

spring.cloud.sentinel.datasource.param_flow.nacos.namespace=${spring.cloud.nacos.config.namespace}

spring.cloud.sentinel.datasource.param_flow.nacos.data-id=${project.name}-param_flow-rules

spring.cloud.sentinel.datasource.param_flow.nacos.group-id=${sentinel.nacos.default.namespace}

spring.cloud.sentinel.datasource.param_flow.nacos.data-type=json

spring.cloud.sentinel.datasource.param_flow.nacos.rule-type=param_flow

限流处理

请求击中限流规则后,我们要对限流异常进行处理。可以通过自定义BlockRequestHandler来定制处理逻辑,也可以使用sentinel spring gateway的默认处理器,支持需要在配置文件里加上一下信息:

# mode=response代表正常返回响应,mode=redirect代表重定向某个页面

spring.cloud.sentinel.scg.fallback.mode=response

spring.cloud.sentinel.scg.fallback.response-body={"success"false"message":"too many requests(flow limiting)""code"429}

spring.cloud.sentinel.scg.fallback.response-status=429

sentinel dashboard部署

sentinel dashboard是sentinel的管理后台代码,做了定制支持nacos,代码在仓库:GitHub - xsg22/Sentinel at sentinel-nacos-1.8

通过maven打出jar包后,支持传到服务器上进行部署。也可以使用已有的jar:https://download.csdn.net/download/xsgnzb/88522419

部署完整命令如下:

java -jar sentinel-dashboard.jar --auth.enabled=true --auth.username=admin --auth.password=123456 --server.port=9090 --spring.cloud.nacos.config.namespace=xxx --spring.cloud.nacos.config.server-addr=xxx

部署的时候要注意几个参数:

# 访问端口

server.port=9090

# 登录账号

auth.enabled=true

auth.username=admin

auth.password=123456

# nacos连接地址

spring.cloud.nacos.config.server-addr=xxx

spring.cloud.nacos.config.namespace=xxx

数据源

sentinel包含7种规则类型,这些规则数据存放在nacos里。配置格式是,dataId=${project.name}-${ruleType}-rules,group=SENTINEL_GROUP。例如,限流规则对应的dataId=spring-gateway-gw_flow-rules。

这是sentinel定义的RuleType:

public enum RuleType {

    /**

     * 限流规则,非网关模式

     */

    FLOW("flow", FlowRule.class),

    /**

     * 降级规则

     */

    DEGRADE("degrade", DegradeRule.class),

    /**

     * 根据请求参数进行限流的规则

     */

    PARAM_FLOW("param-flow", ParamFlowRule.class),

    /**

     * 系统规则,根据cpu使用率、load指标进行限流

     */

    SYSTEM("system", SystemRule.class),

    /**

     * 授权规则,app的白名单/黑名单

     */

    AUTHORITY("authority", AuthorityRule.class),

    /**

     * 限流规则,网关模式

     */

    GW_FLOW("gw-flow",

            "com.alibaba.csp.sentinel.adapter.gateway.common.rule.GatewayFlowRule"),

    /**

     * api定义信息

     */

    GW_API_GROUP("gw-api-group",

            "com.alibaba.csp.sentinel.adapter.gateway.common.api.ApiDefinition");

}

注意,使用网关模式对接时,限流规则不能放到flow类型下,要使用gw_flow类型。

http://www.tj-hxxt.cn/news/82756.html

相关文章:

  • 国际新闻最新消息今天2024年谷歌seo推广培训班
  • 云校网站建设产品推广方案ppt模板
  • 超简单做网站软件百度关键词搜索趋势
  • 做箱包批发哪个网站好win10优化大师有用吗
  • 常德做网站最有效的100个营销方法
  • 杭州网站建设网aso优化平台有哪些
  • 去国外做赌钱网站电商seo优化是什么意思
  • 网站定制开发流程和功能最新社会舆情信息
  • 内页优化南宁seo网络推广
  • 杭州制作网站的公司简介今日要闻
  • 男直接做的视频网站网络销售怎么找客源
  • 合肥网站开发 合肥网站优化推广运营是什么工作
  • 营销型网站建设实战》seo优化培训多少钱
  • 下载源代码建网站佛山全市核酸检测
  • 儿童教育类网站模板下载2022社会热点事件及看法
  • 网站建立的方式是什么哪里做网络推广好
  • 济宁君天建设公司网站新平台推广
  • 长治网站制作镇江百度seo
  • 怎么优化网站制作一个网站步骤
  • php门户网站源码网店代运营骗局
  • 长沙雨花区建设局网站免费的网站软件下载
  • 南阳市城乡和住房建设局网站产品推广语
  • 长治市城乡建设局网站百度seo关键词优化排名
  • 如何设计网站站点网络推广是网络营销的基础
  • 西安seo排名收费seo站内优化
  • 海口网站网站建设宁波百度关键词推广
  • 网站 设计 分辨率百度广告联盟怎么赚钱
  • 瓜果蔬菜做的好的电商网站今日头条热点新闻
  • 设计网站怎么做实体店引流推广方法
  • 杭州集团网站建设中国互联网电视app下载安装