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

e建网保定百度seo公司

e建网,保定百度seo公司,中关村在线对比,查公司信息在哪里查官方参考文档#xff1a; 动态规则扩展 alibaba/Sentinel Wiki GitHub 需要修改的代码如下#xff1a; 为了便于后续版本集成nacos#xff0c;简单讲一下集成思路 1.更改pom 修改sentinel-datasource-nacos的范围 将 dependencygroupIdcom.alibaba.c…官方参考文档 动态规则扩展 · alibaba/Sentinel Wiki · GitHub 需要修改的代码如下 为了便于后续版本集成nacos简单讲一下集成思路 1.更改pom 修改sentinel-datasource-nacos的范围 将 dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-datasource-nacos/artifactIdscopetest/scope /dependency 改为 dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-datasource-nacos/artifactId!--scopetest/scope-- /dependency 2.拷贝示例 将test目录下的com.alibaba.csp.sentinel.dashboard.rule.nacos包下的内容拷贝到src的 com.alibaba.csp.sentinel.dashboard.rule的目录 test目录只包含限流其他规则参照创建即可。 创建时注意修改常量并且在NacosConfig实现各种converter 注意授权规则和热点规则需要特殊处理否则nacos配置不生效。 因为授权规则Entity比流控规则Entity多包了一层。 public class FlowRuleEntity implements RuleEntity public class AuthorityRuleEntity extends AbstractRuleEntityAuthorityRule 以授权规则为例 AuthorityRuleNacosProvider.java /** Copyright 1999-2018 Alibaba Group Holding Ltd.** Licensed under the Apache License, Version 2.0 (the License);* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an AS IS BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/ package com.alibaba.csp.sentinel.dashboard.rule.nacos.authority;import com.alibaba.csp.sentinel.dashboard.datasource.entity.rule.AuthorityRuleEntity; import com.alibaba.csp.sentinel.dashboard.rule.DynamicRuleProvider; import com.alibaba.csp.sentinel.dashboard.rule.nacos.NacosConfigUtil; import com.alibaba.csp.sentinel.datasource.Converter; import com.alibaba.csp.sentinel.slots.block.authority.AuthorityRule; import com.alibaba.csp.sentinel.util.StringUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.api.config.ConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;import java.util.ArrayList; import java.util.List;/*** author Eric Zhao* since 1.4.0*/ Component(authorityRuleNacosProvider) public class AuthorityRuleNacosProvider implements DynamicRuleProviderListAuthorityRuleEntity {Autowiredprivate ConfigService configService;Autowiredprivate ConverterString, ListAuthorityRuleEntity converter;Overridepublic ListAuthorityRuleEntity getRules(String appName) throws Exception {String rules configService.getConfig(appName NacosConfigUtil.AUTHORITY_DATA_ID_POSTFIX,NacosConfigUtil.GROUP_ID, 3000);if (StringUtil.isEmpty(rules)) {return new ArrayList();}return converter.convert(this.parseRules(rules));}private String parseRules(String rules) {JSONArray newRuleJsons new JSONArray();JSONArray ruleJsons JSONArray.parseArray(rules);for (int i 0; i ruleJsons.size(); i) {JSONObject ruleJson ruleJsons.getJSONObject(i);AuthorityRuleEntity ruleEntity JSON.parseObject(ruleJson.toJSONString(), AuthorityRuleEntity.class);JSONObject newRuleJson JSON.parseObject(JSON.toJSONString(ruleEntity));AuthorityRule rule JSON.parseObject(ruleJson.toJSONString(), AuthorityRule.class);newRuleJson.put(rule, rule);newRuleJsons.add(newRuleJson);}return newRuleJsons.toJSONString();} } AuthorityRuleNacosPublisher.java /** Copyright 1999-2018 Alibaba Group Holding Ltd.** Licensed under the Apache License, Version 2.0 (the License);* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an AS IS BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/ package com.alibaba.csp.sentinel.dashboard.rule.nacos.authority;import com.alibaba.csp.sentinel.dashboard.datasource.entity.rule.AuthorityRuleEntity; import com.alibaba.csp.sentinel.dashboard.rule.DynamicRulePublisher; import com.alibaba.csp.sentinel.dashboard.rule.nacos.NacosConfigUtil; import com.alibaba.csp.sentinel.datasource.Converter; import com.alibaba.csp.sentinel.util.AssertUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.api.config.ConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;import java.util.List;/*** author Eric Zhao* since 1.4.0*/ Component(authorityRuleNacosPublisher) public class AuthorityRuleNacosPublisher implements DynamicRulePublisherListAuthorityRuleEntity {Autowiredprivate ConfigService configService;Autowiredprivate ConverterListAuthorityRuleEntity, String converter;Overridepublic void publish(String app, ListAuthorityRuleEntity rules) throws Exception {AssertUtil.notEmpty(app, app name cannot be empty);if (rules null) {return;}configService.publishConfig(app NacosConfigUtil.AUTHORITY_DATA_ID_POSTFIX,NacosConfigUtil.GROUP_ID, this.parseRules(converter.convert(rules)));}private String parseRules(String rules) {JSONArray oldRuleJsons JSONArray.parseArray(rules);for (int i 0; i oldRuleJsons.size(); i) {JSONObject oldRuleJson oldRuleJsons.getJSONObject(i);JSONObject ruleJson oldRuleJson.getJSONObject(rule);oldRuleJson.putAll(ruleJson);oldRuleJson.remove(rule);}return oldRuleJsons.toJSONString();} } 热点规则同理 3.修改controller v2目录的FlowControllerV2 将 AutowiredQualifier(flowRuleDefaultProvider)private DynamicRuleProviderListFlowRuleEntity ruleProvider;AutowiredQualifier(flowRuleDefaultPublisher)private DynamicRulePublisherListFlowRuleEntity rulePublisher; 改为 AutowiredQualifier(flowRuleNacosProvider)private DynamicRuleProviderListFlowRuleEntity ruleProvider;AutowiredQualifier(flowRuleNacosPublisher)private DynamicRulePublisherListFlowRuleEntity rulePublisher; controller目录的其他controller包括 AuthorityRuleController DegradeController FlowControllerV1 ParamFlowRuleController SystemController 做如下更改(以DegradeController为例) 将 Autowiredprivate SentinelApiClient sentinelApiClient; 改成 AutowiredQualifier(degradeRuleNacosProvider)private DynamicRuleProviderListDegradeRuleEntity ruleProvider;AutowiredQualifier(degradeRuleNacosPublisher)private DynamicRulePublisherListDegradeRuleEntity rulePublisher; 将原有publishRules方法删除统一改成 private void publishRules(/*NonNull*/ String app) throws Exception {ListDegradeRuleEntity rules repository.findAllByApp(app);rulePublisher.publish(app, rules);} 之后解决报错的地方即可。 获取所有rules的地方 将 ListDegradeRuleEntity rules sentinelApiClient.fetchDegradeRuleOfMachine(app, ip, port); 改成 ListDegradeRuleEntity rules ruleProvider.getRules(app); 原有调用publishRules方法的地方删除掉 在上一个try catch方法里加上 publishRules(entity.getApp()); 这里的entity.getApp()也有可能是oldEntity.getApp()/app等变量。根据删除的publishRules代码片段推测即可。 4.修改前端文件 文件路径:src/main/webapp/resources/app/scripts/directives/sidebar/sidebar.html 将 a ui-srefdashboard.flowV1({app: entry.app}) 改成 a ui-srefdashboard.flow({app: entry.app}) 5.最后打包即可 执行命令打包成jar mvn clean package 运行方法与官方jar一致不做赘述 6.微服务程序集成 pom.xml添加 dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-datasource-nacos/artifactId/dependency 配置文件application.yml添加 spring:cloud:sentinel:datasource:# 名称随意flow:nacos:server-addr: localhost:8848dataId: ${spring.application.name}-flow-rulesgroupId: SENTINEL_GROUP# 规则类型取值见# org.springframework.cloud.alibaba.sentinel.datasource.RuleTyperule-type: flowdegrade:nacos:server-addr: localhost:8848dataId: ${spring.application.name}-degrade-rulesgroupId: SENTINEL_GROUPrule-type: degradesystem:nacos:server-addr: localhost:8848dataId: ${spring.application.name}-system-rulesgroupId: SENTINEL_GROUPrule-type: systemauthority:nacos:server-addr: localhost:8848dataId: ${spring.application.name}-authority-rulesgroupId: SENTINEL_GROUPrule-type: authorityparam-flow:nacos:server-addr: localhost:8848dataId: ${spring.application.name}-param-flow-rulesgroupId: SENTINEL_GROUPrule-type: param-flow 7.测试验证 在sentinel控制台界面添加几个流控规则后尝试关闭微服务和sentinel然后重新打开sentinel和微服务看流控规则是否还在。 8.最后把配置好的代码发给大家大家可以自行下载里边有运行访问流程 https://download.csdn.net/download/qq_34091529/88482757
http://www.w-s-a.com/news/949365/

相关文章:

  • 网站建设中html代码网络培训课堂app
  • 无锡做网站seo自己做的网站如何上传网上
  • 园林景观网站模板小白怎么做跨境电商
  • 找第三方做网站 需要注意企业网站带数据库
  • 北京南站到北京站flash网站制作单选框和复选框ui组件
  • 网站建设核电集团网站设计案例
  • 宝塔做的网站能不能访问上海的广告公司网站建设
  • 网站会员系统方案新能源网站建设哪家好
  • 全球网站域名域名被墙查询
  • 做期货看资讯什么网站好哈尔滨网站设计联系方式
  • 建站宝盒免费下载上海网论坛网址
  • 国内最有趣的25个网站推广流程
  • 红河做网站抖音小程序怎么挂到抖音上
  • 高度重视机关门户网站建设外包
  • 网站里面送礼物要钱怎么做代码网站开发怎么对接客户
  • 泰州网站制作策划如何做网站需求
  • 门户网站优化报价软件技术公司
  • 怎样换网站logo公司名字大全集免费
  • 为网站网站做推广各类最牛网站建设
  • 网站用自己的电脑做服务器佛山做网站制作公司
  • 一个网站如何做cdn加速器如何上传网站数据库
  • 汝州住房和城乡建设局新网站营销网站定位
  • yy直播官网seo引擎优化是什
  • 做影视网站违法莫品牌营销是什么
  • 全网最稳最低价自助下单网站wordpress电影网站主题
  • 域名更换网站温州建设工程网站
  • 网站如何优化推广连锁店管理网站开发
  • 伊宁市做网站功能性质网站
  • 北京哪个网站制作公司优化大师免费安装下载
  • 同江佳木斯网站设计做网站联系电话