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

检察院网站建设wordpress 无法编辑主题

检察院网站建设,wordpress 无法编辑主题,企业徽章设计,购物网站设计目标SpringCloud Alibaba五大组件之——Sentinel#xff08;文末附有完整项目GitHub链接#xff09; 前言一、什么是Sentinel二、Sentinel控制台1.下载jar包2.自己打包3.启动控制台4.浏览器访问 三、项目中引入Sentinel1.在api-service模块的pom文件引入依赖#xff1a;2.applic… SpringCloud Alibaba五大组件之——Sentinel文末附有完整项目GitHub链接 前言一、什么是Sentinel二、Sentinel控制台1.下载jar包2.自己打包3.启动控制台4.浏览器访问 三、项目中引入Sentinel1.在api-service模块的pom文件引入依赖2.application.yml3.补充jvm启动参数4.编写简单的测试程序5.SentinelResource注解6.其他方式 四、规则讲解1.代码中硬编码2.控制台配置生产环境中不推荐1左侧菜单栏添加2簇点链路中添加 3.为何不推荐控制台中添加 五、生产环境下规则集成Nacos1.引入依赖2.Nacos中新增config3.application.yml文件修改4.重启 六、结语 前言 前文我们已经介绍了SpringCloud Alibaba五大组件中的两个dubbo和nacos文章连接太细了有手就行SpringCloud AlibabaNacosDubbo整合有需要的可以去查阅。 ps本文用到的项目demo也是基于这篇文章去扩展的包括模块结构和版本依赖等等。 一、什么是Sentinel 随着微服务的流行服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点从流量控制、流量路由、熔断降级、系统自适应过载保护、热点流量防护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景例如秒杀即突发流量控制在系统容量可以承受的范围、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时监控Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据甚至 500 台以下规模的集群的汇总运行情况。 广泛的开源生态Sentinel 提供开箱即用的与其它开源框架/库的整合模块例如与 Spring Cloud、Apache Dubbo、gRPC、Quarkus 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。同时 Sentinel 提供 Java/Go/C 等多语言的原生实现。 完善的 SPI 扩展机制Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。 Sentinel 的主要特性 上面内容都是引用于官网 二、Sentinel控制台 官方提供两种方式跑控制台我建议没有特殊需求下通通用第一种就行 1.下载jar包 打来Sentinel的官网https://github.com/alibaba/Sentinel/releases找到自己需要的版本下载本文编写时最高版本是1.8.8本文用的是1.8.6版本 版本问题作者这里再啰嗦一句一定要选对因为我这一系列文章SpringCloud alibaba定的是2021.0.6.0所以一切版本如下图来选直接毕业版本。 2.自己打包 下载整个工程用mvn clean package打成jar包 3.启动控制台 打开cmd进入jar包的目录执行一下代码 java -Dserver.port8180 -Dcsp.sentinel.dashboard.serverlocalhost:8180 -Dproject.namesentinel-dashboard -jar sentinel-dashboard-1.8.6.jar其中 -Dserver.port8180 用于指定 Sentinel 控制台端口为 8180默认8080 dashboard.server网页的端口客户端必须按指定的访问也可以省略默认是127.0.0.1:8080 4.浏览器访问 访问http://localhost:8180默认账户和密码都是sentinel 登录显示这个界面则成功 三、项目中引入Sentinel 1.在api-service模块的pom文件引入依赖 dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId/dependency2.application.yml 修改配置文件新加如下配置 spring:cloud:sentinel:transport:port: 8719dashboard: localhost:8180此处的port默认是8179主要就是项目启动后会自行启动一个HTTP server通过这个端口和sentinel客户端进行交互来传输数据。 dashboard: localhost:8180这个要和上一步启动sentinel控制台时候的ip端口一致。 3.补充jvm启动参数 只要你前面配置和项目都正确这一步可以省略但是如果你项目启动sentinel控制台服务注册不上你就jvm加入下面参数 -Dcsp.sentinel.dashboard.server127.0.0.1:81804.编写简单的测试程序 controller RestController RequestMapping(/testSentinel) public class SentinelController {ResourceUserInfoService userInfoService;RequestMapping(/one)public void testThree() {userInfoService.testSentinel();} }service Service public class UserInfoServiceImpl{OverrideSentinelResource(value testSentinel, blockHandler testBlockHandler, fallback testFallback)public void testSentinel() {System.out.println(testSentinel);//这行代码是为了测试报错熔断如果只是流控测试此行代码可以屏蔽//int a 1/0;}public void testBlockHandler(BlockException ex) {System.out.println(进入testBlockHandler);}public void testFallback(Throwable e) {System.out.println(进入testFallback);e.printStackTrace();} }浏览器访问一下接口 查看控制台这里可以看到我们的测试接口项目已经集成好了sentinel PS1.因为sentinel是懒加载这里一定要浏览器随便访问一个接口不然服务注册不上也可以添加配置spring.cloud.sentinel.eager:true实现服务器启动了自动心跳注册。 2.访问了要等个几秒钟有延迟刷新一下就能看到了。 5.SentinelResource注解 常用的几个注解参数 value定义资源名blockHandler会在原方法被限流/降级/系统保护的时候调用记得方法定义在同一个类中。fallback 会针对所有类型的异常出现时调用defaultFallback全局默认出异常时候调用定义了fallback则此参数不生效 6.其他方式 当然除了注解之外还提供了其他编码方式去控制一段代码或者一个方法的访问比如最常见的SphU.entry大家也可以去官网上查阅根据需求选择 try {// 资源名可使用任意有业务语义的字符串注意数目不能太多超过 1K超出几千请作为参数传入而不要直接作为资源名// EntryType 代表流量类型inbound/outbound其中系统规则只对 IN 类型的埋点生效entry SphU.entry(自定义资源名);// 被保护的业务逻辑// do something... } catch (BlockException ex) {// 资源访问阻止被限流或被降级// 进行相应的处理操作 } catch (Exception ex) {// 若需要配置降级规则需要通过这种方式记录业务异常Tracer.traceEntry(ex, entry); } finally {// 务必保证 exit务必保证每个 entry 与 exit 配对if (entry ! null) {entry.exit();} }四、规则讲解 这里会讲几个常用的配置其余的配置大家可以去官方查看sentinel官网配置规则主要有两种方式第一种是代码中硬编码第二种是通过控制台配置的形式 1.代码中硬编码 先介绍下java代码中的几个规则对象 DegradeRule熔断降级主要是当一个接口不可访问后进行的一系列操作避免所有请求堵塞AuthorityRule 授权规则来源访问判断来源请求是否放行常用的场景是黑白名单FlowRule 流量控制规则监控QPS避免系统被瞬时的流量高峰冲垮ParamFlowRule 热点参数限流可以看做是一种特殊的流量控制仅对包含热点参数的资源调用生效SystemRule系统保护规则当系统负载高于某个阈值就禁止或者减少流量的进入当 load 开始好转则恢复流量的进入 当然还有网关控制和集群流量控制这两者在代码中无法实现只有通过控制台配置。 我们就拿熔断规则来举例在service中增加如下规则初始化方法 PostConstructpublic void initRule() {//熔断规则 5s内调用接口出现异常次数超过5的时候, 进行熔断ListDegradeRule degradeRules new ArrayList();DegradeRule rule new DegradeRule();rule.setResource(testSentinel);rule.setCount(5);//统计时长rule.setStatIntervalMs(5000);rule.setGrade(RuleConstant.DEGRADE_GRADE_EXCEPTION_COUNT);//熔断规则//熔断时长rule.setTimeWindow(10);degradeRules.add(rule);DegradeRuleManager.loadRules(degradeRules);}大家可以在文末获取代码自行去测试。 2.控制台配置生产环境中不推荐 控制台中我们有两种方式去添加流控规则 第一种方式 1左侧菜单栏添加 注意这里的资源名和我们代码中的资源名要匹配不然配置不会生效。 2簇点链路中添加 在链路中添加可以保证我们的资源名是一定存在的两种添加方式你自己选择喜欢的。 3.为何不推荐控制台中添加 因为控制台中添加规则会推送到项目的内存中重启就没了不能持久化所以在生产环境中不推荐总不能你每次重启项目都要单独配置一次。 五、生产环境下规则集成Nacos 生产环境下都用的Nacos统一管理规则就是常说的push规则通过Nacos推送到sentinel控制台然后再更新到项目中。这样即使项目重启只要Nacos还在配置就是接近持久化的状态。 1.引入依赖 由于spring-cloud-starter-alibaba-sentinel 的Maven依赖并没有引入Nacos相关的所以我们要单独引入依赖 dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-datasource-nacos/artifactId/dependency2.Nacos中新增config 新增一个流量控制的config 选取json格式 [{resource: testSentinel,limitApp: default,grade: 1,count: 2,strategy: 0,controlBehavior: 0,clusterMode: false} ]resource资源名即限流规则的作用对象limitApp流控针对的调用来源若为 default 则不区分调用来源grade限流阈值类型QPS 或并发线程数0代表根据并发数量来限流1代表根据QPS来进行流量控制count限流阈值strategy调用关系限流策略controlBehavior流量控制效果直接拒绝、Warm Up、匀速排队clusterMode是否为集群模式 3.application.yml文件修改 在前面的基础上新增datasource的配置 注意这里的nacos一定要和上一步新增的对应 spring:cloud:sentinel:transport:port: 8719dashboard: localhost:8180datasource:ds:nacos:server-addr: 172.16.72.132:8848data-id: sentinel-rulenamespace: 76dae550-4133-44d8-b591-dc82f5f97b6egroup-id: SENTINEL_PROVIDER_GROUPusername: nacospassword: nacosdata-type: jsonrule-type: flow由于spring.cloud.sentinel.datasource属性对应的是一个Map所以它的需要自定义指定Map的KEY下面的配置中ds就作为KEY然后后面就可以配置不同的数据源 4.重启 重启后查看sentinel控制台可以看到我们在nacos定义的规则 测试一下新加的流控规则我们是定义的qps不超过2超过的请求全部拒绝默认这里补充一下拒绝策略。 快速失败超过设置阈值的请求全部拒绝请求失败Warm Up 排队等待 可以看到标记1和标记2都能正常打印当第三个请求来了的时候“进入testFallback”就不打印了转而进入了blockHandler方法说明流控是生效了的。 六、结语 到这里SpringCloud alibaba五大组件之一的流控熔断降级sentinel就讲解完了欢迎大家评论区指点后面还剩两个组件分布式队列RocketMQ和分布式事务SeataRocketMQ可能会找个时间再写一篇文章但是Seata的话如果项目比较庞大加上事务会顶不住qps明显降低很多我一个阿里工作的朋友给我谈过他们项目组的微服务都是裸奔的没有用事务所以这文章我再考虑出不出其实本文项目中的一个分支seata我是已经实现了整合的但是感觉生产环境中又不试用就没有发出来后面看情况吧 附上项目GitHub链接https://github.com/wangqing-github/DubboAndNacos/tree/sentinel选取sentinel分支。
http://www.hkea.cn/news/14290395/

相关文章:

  • 广东网站开发网站开发设计费用
  • 提供网站建设备案公司微信seo是什么意思
  • 设计网站的意义网站的功能建设
  • 赣州网站建设jxgzg3怎么做营销推广方案
  • 网站建设公司销售前景一般网站建设公司怎么收费
  • 网站模板 wordpress仿美团网站开发
  • 正规品牌网站设计推荐全国甲级建筑设计院名单
  • 企业网站开发注意什么纯静态网站制作
  • 云南云南省城乡建设厅网站wordpress ssl 图片
  • 免费发布信息网站网址大全如何设计一个网络
  • 如何做产品网站昆明广告设计与制作公司
  • 网站建设经费管理广西网络
  • 珠海做网站找哪家好网站ui需求
  • 好推建站网站开发百灵鸟
  • 微信网站怎么做下载附件手机网站制作服务机构
  • 手机怎么生成网站网站地址英文
  • 做仿牌网站网络网站建设公司
  • 企业网站修改流程泰安最新消息
  • 有域名怎么免费建站郯城做网站
  • 湛江自做网站wordpress 维护中
  • 济南做网站互联网公司有哪些移动端下载app
  • 怎样在百度做网站打广告广州网站建设设计公司
  • 做网站员培训咸阳市建设银行网站
  • 做网站能给公司带来什么好处做php网站
  • 滕州做网站的wordpress 演示导入
  • 北京网站改版多少钱网址大全黄页男女
  • 网站建设i临沂企业建站模板
  • 对于职业规划做的好的网站网站开发报告样式
  • 杂志在线设计网站易车网汽车之家
  • 机械网站建设营销网站购买广告位